【发布时间】:2021-01-09 09:10:32
【问题描述】:
我有 asp.net 项目,我在其中添加了 Lucene.net。可搜索的数据来自 DB。在构建应用程序时,我有将所有数据添加到索引的方法。 有没有办法只添加一次数据,然后只删除和更新文档? 索引的生命周期有多长?我应该每次在构建应用程序时添加数据吗?
【问题讨论】:
标签: indexing lucene lucene.net
我有 asp.net 项目,我在其中添加了 Lucene.net。可搜索的数据来自 DB。在构建应用程序时,我有将所有数据添加到索引的方法。 有没有办法只添加一次数据,然后只删除和更新文档? 索引的生命周期有多长?我应该每次在构建应用程序时添加数据吗?
【问题讨论】:
标签: indexing lucene lucene.net
我不太清楚你所说的“终生”是什么意思。索引中的数据将一直存在,直到您将其删除。
是的,有一些方法可以从索引中删除文档并更新索引中的文档。
writer.DeleteDocuments(query)writer.UpdateDocument
可能值得一提的是,writer.UpdateDocument 最终导致 Lucene 删除文档,然后将新版本添加到索引中。虽然这就是幕后发生的事情,但在需要更新索引中的文档时调用writer.UpdateDocument 仍然很好,因为它显示了代码的意图。
因此,如果您的代码可以根据需要添加新文档、根据需要删除文档并根据需要更新文档,则没有理由不断地完全重建索引。 Lucene 支持所有这些操作。
【讨论】: