Quantcast
Channel: 진성주(Sungju Jin) » Lucene
Viewing all articles
Browse latest Browse all 10

루씬 인덱스복구

$
0
0

인덱스에 Delete,Update작업을 하다가 JVM이 Crash가 나버려, 중간에 segment 파일을 못찾는 사태가 발생하게 되었다. 인덱싱한 파일이 각컨텐츠영역만큼 분리된 상태여서 사이즈가 작은 것은 재인덱싱을 하여 교체하여 운영을 하였지만, 2천만건 이상의 문서가 들어있는 인덱스는 재인덱싱하는데 하루이상이 걸리는 것이여서 루씬메일링과 루크(luke – http://www.getopt.org/luke) 소스를 찾아 복구하는 루틴을 찾았다.

File indexDir = new File("path");
Directory directory = new NIOFSDirectory(indexDir);
CheckIndex checkindex = new CheckIndex(directory);
checkindex.setInfoStream(System.out);
CheckIndex.Status result = checkindex.checkIndex();
checkindex.fixIndex(result);
directory.close();

진짜복구인지는 fixIndex 루틴을 확인해보아야 알듯하다.

덧, 재인덱싱하는 시간만큼 서비스장애된채로 있을까봐 등에 식은땀이… 한시간동안의 장애가 정말 지옥이였다. 쿨럭;


Viewing all articles
Browse latest Browse all 10