2010-06-29 4 views
2

다른 인덱스에서 인기있는 용어의 인덱스를 작성하는 레거시 코드 작업 중입니다. 단위 테스트는 존재하지 않으며, 색인 작성 프로세스는 첫 번째 색인이 작성하는 데 너무 오래 걸리기 때문에 기다리는 것이 쉽지 않습니다.Lucene 인덱스에 대한 단위 테스트

두 번째 (인기있는 용어) 색인을 다르게 구성하려고합니다. Lucene 색인이 제대로 작성되었는지 확인하기위한 테스트가 가장 좋은 방법입니까?

편집 >> 당 파스칼의 조언 @ 나는 RAMDirectory을 사용하고 후, 난 그냥 내가 indexReader를 설정하고 확인 데이터 외모를 만들기 위해 각 용어를 인쇄 용어 결과를 반복 쓴 인덱스를 테스트 다 좋아.

코드 :

IndexReader reader = IndexReader.open(dir2); 
TermEnum terms = reader.terms(); 
System.out.println("Here come the terms!"); 
while (terms.next()){ 
    if (terms.term().field().equals("FULLTEXT")){ 
     System.out.println(terms.term()); 
    } 
} 
int numDocs = reader.maxDoc(); 
System.out.println("Number of Docs: " + numDocs); 

인덱스가 그때 그냥 중간에 취소가 조금 실행하자 정말 큰 경우.

또한 Luke은 더 철저하게 읽고 싶다면 색인을 검사하는 훌륭한 도구입니다 ... 나는 단지 빠른 것을 찾고 있습니다.

다른 아이디어는 환영합니다!

답변

3

Lucene 색인을 단위 테스트 할 때 RAMDirectory를 자주 사용하기 때문에 자주 사용합니다.

+0

좋은 아이디어, 그 방법은 또한 올바르게 지속되지 않습니까? – stinkycheeseman

+0

예, 디스크에 지속되지 않지만 테스트 시간 동안 메모리에 남아 있습니다. –

+0

정말 잘 작동합니다, 감사합니다 파스칼! – stinkycheeseman

관련 문제