2
いくつかの一時インデックスをマージすると(重複したドキュメントが含まれていてもいなくてもかまいません)、メインインデックスに1つのコピーが作成されます。Lucene AddIndexes(merge) - 重複を避けるにはどうすればいいですか?
おかげ
いくつかの一時インデックスをマージすると(重複したドキュメントが含まれていてもいなくてもかまいません)、メインインデックスに1つのコピーが作成されます。Lucene AddIndexes(merge) - 重複を避けるにはどうすればいいですか?
おかげ
ここでの方法です:
mark the indexes by I1..Im.
for i in 1..m, let Ci = all the indexes but Ii
for all the documents Dj in Ii,
let cur_term = "id:<Dj's id>"
for Ik in Ci
Ik.deleteDocuments(cur_term)
merge all indexes
要旨は次のとおりです:同じIDを持つすべての文書を削除 は、各文書はIDを持っており、その重複した文書が同じIDを持っていることを提供他のインデックスからの現在のドキュメントこれをすべてのインデックスに対して実行した後、それらをマージします。 これはエレガントではないことは分かっていますが、より良いアルゴリズムはわかりません。
ありがとうございました。私はちょっと、tempインデックス全体を反復することを避けたいと思っていました。 – Roey
IDが同じ場合、その内容が異なる場合はどうなりますか? 1つは時間枠を使用する必要があります – asyncwait