首页 > 代码库 > Lucene4.0 LogMergePolicy
Lucene4.0 LogMergePolicy
其特点是给定的段列表顺序归并,不像TieredMergePolicy那样按大小排序之后决定。
norm = log(10),levelFloor=log(minMergeSize)/norm,对段列表中的元素,添加level值为log(size)/norm(即使log 10 size)的seg。
从列表位置0开始,取最大的logLevel为maxLevel,levelBottom=(float)(max-0.75)(如果maxLevel<=levelFloor,levelBottom=-1.0,levelBottom<levelFloor则levelBottom=levelFloor)。
从后往前找到第一个level大于等于levelBottom的位置upto,在[start, upto + 1)中以10个一组,在其中如果找不到任何size >= maxMergeSize,sizeDocs >= maxMergeDocs或正在合并的段时,将其加入merges数组。
下次则从1+upto位置开始找归并段。
findForceMerges只发生在IndexWriter中有maxNumSegments限制的情况下。
LogDocMergePolicy中size按照sizeDocs计算,minMergeSize默认为1000.
LogByteSizeMergePolicy中默认minMergeSize是1.6M,maxMergeSize是2G。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。