본문 바로가기

Lucene

IndexReader.isCurrent()


IndexReader에 대해서..

색인이 되어 있는 인덱스 파일이 있습니다.

이것을 IndexReader를 사용해서 IndexSeacher를 생성하겠습니다.

이때 reader.isCurrent()의 값은 true입니다.

이 상태에서 같은 인덱스 파일이 있는 디렉토리에 다시 색인을 해보겠습니다.

위 메서드를 이용해서 다시 색인하고 reader.isCureent()를 다시 확인해보면

결과는 false가 나옵니다.

새롭게 작성된 인덱스 파일이 존재하기 때문입니다.

IndexWriter를 생성 할 때 생성자에 들어가는 3번째 인자가
인덱스 파일을 지우고 새로 생성하느냐 아니면 추가되는 document를 append 하느냐를 나타냅니다.
(true면 새로 생성)

IndexWriter writer = new IndexWriter(dir,new StandardAnalyzer(),false,MaxFieldLength.LIMITED);

저 값이 true건 false이건 상관없이 새로 IndexWriter를 통해 인덱스 파일을 건드리게 되면
reader.isCurrent()는 false를 return합니다.