2
對於我正在進行的項目,我有一個近1000萬個文檔的索引。對於範圍從10k到5m的文檔,我需要定期添加字段。批量更新策略lucene?
Lucene 4支持更新文檔(基本上刪除和添加)。將該字段添加到更大的文檔集合的方法是什麼?
我已經試過到目前爲止使用SearcherManager
包裝一個IndexWriter
,並且使小搜索那些尚未包含該領域的文件,但匹配在BooleanQuery
包裝這些的Query
我很感興趣, 。然後,我遍歷ScoreDocs
,檢索文檔,添加我的新字段,並與每個文檔存儲的uuid
調用writer.updateDocument
。然後我打電話commit
和maybeRefreshBlocking
,重新獲取IndexSearcher
並再次搜索。這有點慢,似乎是一種天真的做法。
謝謝馬克。對於我的情況,我認爲需要重新獲得,因爲我只想處理那些沒有額外領域的文檔;最快(?)的方式來確定這是再次搜索..我想知道,雖然'正確的'批量將是,因爲可以在批處理更多的文件,搜索,承諾等更少的開銷。 – RobAu