Lucene索引的生命期有多长

问题描述

我有一个asp.net项目,在其中添加了Lucene.net。可搜索的数据来自DB。在应用程序构建中,我有一个将所有数据添加到索引的方法。 有什么方法只能添加次数据,之后只能删除和更新文档吗? 索引的寿命是多长时间?我应该在每次构建应用程序时添加数据吗?

解决方法

对于您所说的“终生”,我还不太清楚。索引中的数据将一直存在,直到您删除它为止。

是的,有一些方法可以从索引中删除文档并更新索引中的文档。

writer.DeleteDocuments(query)
writer.UpdateDocument

可能值得一提的是,writer.UpdateDocument最终导致Lucene删除文档,然后将新版本添加到索引中。虽然这是在幕后进行,但由于需要显示代码的意图,因此在需要更新索引中的文档时仍然可以调用writer.UpdateDocument

因此,如果您拥有可以根据需要添加新文档,根据需要删除文档并根据需要更新文档的代码,则没有理由不断地完全重建索​​引。 Lucene支持所有这些操作。