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 回答