控制Lucene中的合并段

时间:2012-07-11 08:27:14

标签: lucene merge segment

我想在Lucene上控制段合并。更确切地说,我有一个每段缓存,每次合并时我想要一个“回调”并检查哪个段将被合并。

我查看了IndexWriter代码,看起来像是索引编写器的内部操作。我也不想破解IndexWriter。我看到一个名为MergeScheduler的界面。实现这个类是最好的主意吗?

你知道怎么做吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

也许您可以继承您正在使用的MergePolicy(默认值为TieredMergePolicy)并通过覆盖findMerges方法拦截要合并的段?

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

// use information from mergeSpecifiation

return mergeSpecification;