我当前的搜索应用程序正在使用lucene进行索引编制过程。如果有任何文件发生变化,我相信,我们可以在开始时重新编制索引。这是正确的吗?
所以,如果是的话,那么所有文件每次都必须重新编入索引,新的文件将被添加,这对于大量的内容大约有4千万个全文文档是不合适的。
这就是为什么我特别担心,使用Lucene,有没有办法只索引已经改变的文件,以避免完全重新索引。
赞赏可能的建议......
感谢你........
答案 0 :(得分:0)
您只需重新索引已更改的文档,无需重新索引所有内容。 IndexWriter
有deleteDocuments
,可以按查询或术语删除文档。然后,您可以使用addDocument
和commit
重新插入已更改的文档,以使其显示为原子。
另外请记住,Lucene只是一个库,不知道为索引传递了什么样的外部实体以及它们如何/何时发生变化 - 作为开发人员,您应对此负责。