Lucene 4.0 TieredMergePolicy

默认的merge policy。

findMerges:

先将全部段依照扣除删除文档之后的字节数(bytesize * (1.0 - delRatio))降序排,对当中size() > 2.5G(maxMergedSegmentSize / 2)的段排除在外,其它仅仅要不是正在归并的段,增加候选。

这个候选的列表假设大于allowedSegCount(allowedSegCount计算方法例如以下: 依照min(最小段size(),2M)做为10路归并在总字节数的限制下计算的段数),则须要从不同位置開始选归并段组合,这些段组合要

进行打分,打分最低的最为一次归并,这样重复挑选,直到全部的候选段都已经挑过。

详细打分公式例如以下:

skew * totAfterMergeBytes ^ 0.05 * nunDelRatio^2.0

假设归并段接近5G(hitLarge=true),skew=1/10,否则为floorsize(candidate(0)) / totAfterMergeBytesFloored。

findForcedMerges提供segmentsToMerge,findForcedMerge对当中是original的段按size()降序排。依照30个一组,从最小的段一次一次加入merge,最后剩下(maxSegmentCount - 1)个段不归并(除非段数>不够)。

findForcedDeletesMerges对于删除文档数超过20%且不是正在归并的段。依照size()排序,按30个一组,从最小的段做一次次归并。

时间: 2025-01-07 17:40:53

Lucene 4.0 TieredMergePolicy的相关文章

Lucene 6.0 提取新闻热词Top-N

一.需求 给出一篇新闻文档,统计出现频率最高的有哪些词语. 二.思路 关于文本关键词提取的算法有很多,开源工具也不止一种.这里只介绍如何从Lucene索引中提取词项频率的TopN.索引过程的本质是一个词条化的生存倒排索引的过程,词条化会从文本中去除标点符号.停用词等,最后生成词项.在代码中实现的思路是使用IndexReader的getTermVector获取文档的某一个字段的Terms,从terms中获取tf(term frequency).拿到词项的tf以后放到map中降序排序,取出Top-N

关于Lucene 3.0升级到Lucene 4.x 备忘

最近,需要对项目进行lucene版本升级.而原来项目时基于lucene 3.0的,很古老的一个版本的了.在老版本中中,我们主要用了几个lucene的东西: 1.查询lucene多目录索引. 2.构建RAMDirectory,把索引放到内存中,以提高检索效率. 3.构建Lucene自定义分词. 4.修改Lucene默认的打分算法.  下面,将代码改造前和改造后做一对比: 1. 搜索多索引目录 3.0 构建多索引目录: 1 // 初始化全国索引 2 private boolean InitGloba

Lucene 4.0 正式版发布,亮点特性中文解读[转]

http://blog.csdn.net/accesine960/article/details/8066877 2012年10月12日,Lucene 4.0正式发布了(点击这里下载最新版),这个版本因为诸多的新特性和大胆的架构调整一直备受期待.无论是索引结构,索引算法以及整体架构的包容性都发生了翻天覆地的变化.正如大家一直所说的Lucene是一个搜索工具包 ,而4.0的发布则让Lucene向搜索框架的方向迈出了一大步. 下面我们来逐一解读Lucene 4.0的新特性吧. Lucene 4.0

Lucene 3.0 输出相似度

http://www.cnblogs.com/ibook360/archive/2011/10/19/2217638.html Lucene3.0之结果排序(原理篇) 传统上,人们将信息检索系统返回结果的排序称为"相关排序" (relevance ranking) ,隐含其中各条目的顺序反映结果和查询的相关程度. 1. 基本排序原理 ①     向量空间模型 Gerald Salton 等在 30 多年前提出的"向量空间模型" (Vector Space Model

lucene 4.0学习

一:官方文件 http://lucene.apache.org/core/4_0_0/ ps:网上参考文章:http://www.cnblogs.com/xing901022/p/3933675.html 二:jar包 (1)lucene-core-4.0.0.jar (2)lucene-analyzers-common-4.0.0.jar (3)lucene-analyzers-smartcn-4.0.0.jar (4)lucene-queries-4.0.0.jar (5)lucene-qu

Lucene.Net3.0.3+盘古分词器学习使用

一.Lucene.Net介绍 Lucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎.开发人员可以基于Lucene.net实现全文检索的功能. Lucene.net是Apache软件基金会赞助的开源项目,基于Apache License协议. Lucene.net并不是一个爬行搜索引擎,也不会自动地索引内容.我们得先将要索引的文档中的文本抽取出来,然后再将其加到Lucene.

lucene 3.0.2 操作进阶

转自:Bannings http://blog.csdn.net/zhangao0086/article/details/6292950 Analyzer(分词器) 分词器能以某种规则对关键字进行分词,将分好的词放到目录中,以作为检索到的条件,在创建索引时会使用到分词器,在搜索时也将用到分词器,这两个地方要使用同一个分词器,否则可能找不到结果.分词器一般的工作流程: 切分关键词 去除停用词 对于英文单词,把所有字母转为小写 注:有的分词器对英文支持的非常好,还能对英文单词进行时态还原. 停用词的

lucene 3.0.2 + 多文件夹微博数据(时间,微博)构建索引

package lia.meetlucene; import java.io.File; import java.io.IOException; import java.util.LinkedList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.apache.lucene.analysis.cn.smart.SmartChineseAn

lucene 6.0 经常使用类与方法

1.文件夹 org.apache.lucene.store.Directory 指定索引所在文件夹. org.apache.lucene.store.RAMDirectory 存放于内存中的文件夹. org.apache.lucene.store.RAMDirectory.RAMDirectory(FSDirectory dir, IOContext context) 构造函数.把文件索引加载内存中. org.apache.lucene.store.FSDirectory 抽象类,代表磁盘中的文