2011년 7월 17일 일요일

lucene incremental indexing

 Lucene은 증분 색인 ( incremental indexing)을 지원한다.

 incremental indexing을 하기 위해서는 기존의 인덱스와 새로 추가하는 문서들의

 인덱스를 합치는 작업을 해야하는데 이때 MergePolicy 클래스에서 이러한

 작업들의 기본 설정을 관리하게 되며 3.0.1 버전을 기준으로 봤을때

 대략 다음과 같이 3개의 Policy 클래스가 있다.

 1. LogByteSizeMergePolicy

 2. LogDocMergePolicy

 3. LogMergePolicy

 Lucene에서는 LogByteSizeMergePolicy를 기본설정으로 사용하고 있다.

 $LUENE_HOME/src/java/org/apache/lucene/index 폴더에서 이러한 Policy 클래스

 가 들어있고 IndexWriter.java의 소스를 보면 이러한 정책들이 셋팅되어 있는

 것을 확인할수 있다.



 LogByteMergePolicy의 알고리즘은

http://nlp.stanford.edu/IR-book/html/htmledition/dynamic-indexing-1.html에 잘 나와있다.


http://blog.mikemccandless.com/2011/02/visualizing-lucenes-segment-merges.html

위의 블로그에 가보면 블로그 저자가 TieredMergePolicy라는 새로운 policy를

 만들고 LUCENE-854 patch로 만들었다고 하는데 lucene-3.3.0 버전에는

 TieredMergePolicy가 포함되어 있다.

댓글 없음:

댓글 쓰기