2

セグメントのマージを Lucene で制御したいと考えています。より正確には、セグメントごとのキャッシュがあり、マージが発生するたびに「コールバック」が必要で、どのセグメントがマージされるかを確認します。

IndexWriter コードを調べたところ、インデックス ライターの内部操作のようです。また、IndexWriter をハックしたくありません。MergeScheduler というインターフェイスが表示されます。このクラスを実装するための最良のアイデアはありますか?

それを行う方法はありますか?前もって感謝します!

4

1 に答える 1

1

たぶん、あなたはあなたが使っているものをサブクラス化MergePolicyし(デフォルトのものは)、このようなメソッドTieredMergePolicyをオーバーライドすることによってマージされるセグメントをインターセプトすることができますか?findMerges

MergePolicy.MergeSpecification mergeSpecification = super.findMerges(segmentInfos);

// use information from mergeSpecifiation

return mergeSpecification;
于 2012-07-11T15:43:31.190 に答える