2
对于我正在进行的项目,我有一个近1000万个文档的索引。对于范围从10k到5m的文档,我需要定期添加字段。批量更新策略lucene?
Lucene 4支持更新文档(基本上删除和添加)。将该字段添加到更大的文档集合的方法是什么?
我已经试过到目前为止使用SearcherManager
包装一个IndexWriter
,并且使小搜索那些尚未包含该领域的文件,但匹配在BooleanQuery
包装这些的Query
我很感兴趣, 。然后,我遍历ScoreDocs
,检索文档,添加我的新字段,并与每个文档存储的uuid
调用writer.updateDocument
。然后我打电话commit
和maybeRefreshBlocking
,重新获取IndexSearcher
并再次搜索。这有点慢,似乎是一种天真的做法。
谢谢马克。对于我的情况,我认为需要重新获得,因为我只想处理那些没有额外领域的文档;最快(?)的方式来确定这是再次搜索..我想知道,虽然'正确的'批量将是,因为可以在批处理更多的文件,搜索,承诺等更少的开销。 – RobAu