提问者:小点点

删除 lucene 索引并重新索引


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

我试过使用< code > close();从< code >目录中删除,但这将防止它在将来被访问(AFAIK)。

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


共2个答案

匿名用户

如果您在每个文档更新(添加/删除)后重新打开索引进行搜索,那么搜索将找到新文档。当您更新(添加/删除)文档时,您不必立即重新索引每个文档-Lucene会为您跟踪这一点。

匿名用户

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

根据其文档:

通过首先删除包含术语的文档,然后添加新文档来更新文档。删除和添加是原子的,就像阅读器在同一索引上看到的那样(刷新可能仅在添加之后发生)。