我想在 Lucene 中对段合并进行控制。更准确地说,我有一个每段缓存,每次合并时我都想要一个“回调”并检查哪个段将被合并。
我查看了 IndexWriter 代码,看起来它是索引编写器的内部操作。我也不想破解 IndexWriter。我看到一个名为 MergeScheduler 的接口。实现这个类是最好的主意吗?
你知道怎么做吗?提前致谢!
也许你可以继承MergePolicy
你正在使用的(默认是TieredMergePolicy
)并通过覆盖这样的方法来拦截要合并的段findMerges
?
MergePolicy.MergeSpecification mergeSpecification = super.findMerges(segmentInfos);
// use information from mergeSpecifiation
return mergeSpecification;