2013-07-19 5 views
0

RAMDirectory를 사용하여 lucene 색인을 만든 다음 색인을 사용하여 검색을 수행 할 수 있습니다. 또한 텍스트를 업데이트 할 때 색인을 다시 생성 할 수있는 기능이 있습니다. 문제는 텍스트가 변경되면 이전 색인이 삭제되거나 삭제되지 않는다는 것입니다.lucene 색인 삭제 및 다시 색인

나는 Directory에서 close();를 사용하여 시도했다 그러나 그 미래 (AFAIK)에 액세스 할 수없는.

색인을 다시 생성하기 전에 이전 색인을 삭제하려면 어떻게해야합니까?

+0

소스 코드가 이러한 질문에 도움이 될 것입니다 ... 정확히 무엇을하고 있는지 분명하지 않습니다. – basZero

답변

-1

전화 걸기 IndexWriter.update (doc)는 실제로 삭제 추가 프로세스를 수행합니다. 그 Documentation 따르면

:

먼저 새 문서를 첨가 한 다음 용어를 포함하는 문서를 삭제하거나하여 문서를 갱신. 삭제와 추가는 같은 인덱스의 리더에서 볼 수있는 원 자성입니다 (플러시는 추가 후에 만 ​​발생할 수 있음).

-1

각 문서가 업데이트 (추가/삭제) 된 후 색인을 검색하기 위해 색인을 다시 열면 검색에서 새 문서를 찾습니다. 문서를 업데이트 (추가/삭제) 할 때 모든 문서의 색인을 즉시 다시 생성 할 필요가 없습니다. Lucene이이를 추적합니다.

+0

이 모든 답변은 단일 문서에 관한 것이지만 질문은 전체 색인에 관한 것입니다. – DCShannon