对于我正在进行的一个项目,我有一个包含近 1000 万份文档的索引。对于从 100k 到 5m 的文档集,我需要定期添加字段。
Lucene 4 支持更新文档(基本上是删除和添加)。将字段添加到更大的文档集的好方法是什么?
到目前为止,我尝试的是使用SearcherManager包装 a IndexWriter,并通过将这些包装在 a 中,对尚未包含该字段但与Query我感兴趣的文档进行小型搜索BooleanQuery。然后我遍历ScoreDocs,检索文档,添加我的新字段并调用我与每个文档一起存储的writer.updateDocument。uuid然后我调用commitand maybeRefreshBlocking,重新获取IndexSearcher并再次搜索。这有点慢,似乎是一种幼稚的方法。