본문 바로가기

Lucene

[Lucene] MultiReader의 사용

정확히 어느버전 부터인지는 모르겠으나 제가 사용하고 있는 루씬 3.3.0 버전에서는
MultiSearcher 클래스가 deprecated 되어있었습니다.
내용을 보면  NumericRangeQuery 부분이 문제가 있는 듯 합니다.
https://issues.apache.org/jira/browse/LUCENE-2756

때문에 기존에 사용하던 MultiSeacher 대신 MultiReader의 사용을 권하고 있네요.

기본적으로 IndexSearcher를 생성시 IndexReader를 넘겨줄 때 MultiReader를 넘겨주는
방식으로 사용하시면 될 것 같습니다.


List<IndexReader> indexReaders = getIndexReaders(); //다수의 인덱스 디렉토리로부터 IndexReader를 생성하여 반환하는 메서드
MultiReader multiReader = new MultiReader(indexReaders.toArray(new IndexReader[0]));
IndexSearcher indexSearcher = new IndexSearcher(multiReader);
view raw 1.java hosted with ❤ by GitHub


기존에는 Searcher를 여러개 만들어서 MultiSearcher를 생성하는 방식이었지만
이것은 Reader를 여러개 만들어서 IndexSearcher에 넘겨주는 방식이되네요..