Lucene PMC 宣布推出 Apache Lucene 的最新版本 8.0.0,可在生产环境中使用。
Lucene 是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎、部分文本分析引擎。目的是为软件开发人员提供一个简单易用的工具包,以方便地在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
查询执行
新版本对术语查询、短语查询和布尔查询进行了优化,在不需要总点击数的时候,可以有效地跳过不具竞争性的文档。根据实际查询和数据分布的不同,查询的速度会在慢几个百分点和快几倍之间变化,对术语查询和纯粹析取(pure disjunctions)来说更是如此。
为配合这个改进,一些 API 做了改动:
TopDocs.totalHits
现在是一个能给出实际点击数下限的对象。
IndexSearcher
的 search
和 searchAfter
方法可以精确地计算总点击数,现在最大值只能可达 1,000,以便查询优化的默认启用。
现在需要查询才能产生非负分数。
编解码器
发布当下的索引得分,会影响到附带的的跳过数据(skip data)。这也是在点击计数不需要的情况下,术语查询对热门点击集合进行优化的方式。
Doc 值引入了跳转表,以便可以不中断地运行,这对稀疏字段来说有很大作用。
现在术语索引 FST
会在堆外加载使用 MMapDirectory
的非主键字段,从而减少这些字段的堆使用。
自定义评分
新的 FeatureField
允许将诸如 pagerank 的静态特征有效地集成到分数中,并且新的 LongPoint#newDistanceFeatureQuery
和 LatLonPoint#newDistanceFeatureQuery
方法可以分别从新近度(recency)和地理距离来提升分数。这些新帮手针对不需要总点击数的情况进行了优化。举个例子,如果 pagerank 在您的分数中有着高的权重,那么 Lucene 往往能跳过低 pagerank 值的文档。
具体更新信息可查阅 更改日志
下载地址: http://lucene.apache.org/core/downloads.html