删除lucene索引并重新索引

时间:2013-07-19 17:14:25

标签: java lucene

我正在使用RAMDirectory创建一个lucene索引,然后允许使用索引执行搜索。我还具有在文本更新时重新索引的功能。问题是,如果文本更改,则不会清除/删除旧索引。

我尝试使用close();中的Directory,但这会阻止将来访问它(AFAIK)。

如何在重新编制索引之前删除旧索引?

2 个答案:

答案 0 :(得分:-1)

调用IndexWriter.update(doc)实际上会执行删除 - 添加过程。

根据其Documentation

首先删除包含term的文档然后添加新文档来更新文档。删除然后添加是原子的,因为阅读器在同一索引上看到(刷新可能只在添加后发生)。

答案 1 :(得分:-1)

如果在更新(添加/删除)每个文档后重新打开搜索索引,则搜索将找到新文档。更新(添加/删除)文档时,您不必立即重新索引每个文档 - Lucene会为您跟踪此事。