- 软件介绍
- 相关专题
- 下载地址
Apache Lucene简介
Apache Lucene是一个搜索引擎工具。如果您需要构建搜索型软件或在应用程序中添加全文搜索功能,您可以选择此工具来编辑搜索和索引方案。该软件支持文本分析、应用编程接口和代码,用于将文本转换为可索引/可搜索的标记,解析各种文件,并支持各种格式的文档,包括HTML、XML、PDF和Word。你可以识别一个句子的开头和结尾,以提供更准确的短语和邻近搜索,让用户快速找到你在文本中输入的内容,并添加一个新的模块analysis/opennlp,其中分析组件可以通过调用相应的opennlp工具来执行标记、单词标记、语法化和短语分割,还提供命名实体识别作为Solr更新请求处理器!
Apache Lucene软件功能
Lucene通过简单的API提供了强大的功能:
1.可扩展高能指数
每小时超过150GB的现代硬件
只有1MB堆的小内存需求
增量索引和批处理索引一样快。
索引大小约为索引文本大小的20-30%。
2.强大、准确、高效的搜索算法
排名-首先返回最佳结果。
很多强大的查询类型:短语查询、通配符查询、邻近查询、范围查询等。
现场搜索(如标题、作者、内容)
按任意字段排序
合并结果的多索引搜索
允许同时更新和搜索
灵活的方面,突出显示,连接和结果分组。
快速、高效的存储和容错推荐
可插拔排名模型,包括向量空间模型和Okapi BM25
可配置存储引擎(编解码器)
3.跨平台解决方案
在Apache许可下作为开源软件提供,您可以在商业程序和开源程序中使用Lucene。
100%纯Java
在其他编程语言中实现指数级兼容性。
Apache Lucene软件特色
Apache Lucene项目开发了开源搜索软件。该项目发布了一个名为Lucene core的核心搜索库,并为Lucene绑定了python pyLucene。
Lucencore是一个Java库,它提供了强大的索引和搜索功能,以及拼写、点击突出显示和高级分析/标记化功能。PyLucene子项目提供了Python绑定Lucene的核心。
Lucene PMC很高兴地宣布Apache Lucene 8.8.2的发布。
Apache Lucene是一个完全用Java编写的高能全功能的文本搜索引擎库。它是一种适用于几乎所有需要全文搜索的应用,尤其是跨平台应用的技术。
Lucene 8.8.2发布点:
LUCENE-9870:修复Circle2D交线的T值(距离)范围剪辑
LUCENE-9744: NPE关于最小小时间隔中的退化查询的源代码。getmatches()。
LUCENE-9762:DoubleValuessoSource . fmquery(也由FunctionScore Query使用。当查询实现TwoPhaseIterator并重复请求分数时,BoostByquery)可能会引发异常。
Apache Lucene使用说明
要使用Lucene,应用程序应该:
1.文档创建一个字段;通过添加;
2.创建一个索引器,并使用AddDocument()向其中添加一个文档;
3.调用QueryParser.parse()从字符串构建查询;和
4.创建一个IndexSearcher,并将查询传递给它的search()方法。
一些简单的代码示例如下:
IndexFiles.java为目录中包含的所有文件创建索引。
SearchFiles.java提示查询和搜索索引。
Apache Lucene是一个高能、全功能的文本搜索引擎库。这是一个如何使用Lucene进行索引和搜索(结果是否符合我们对JUnit的期望)的简单示例:
以下内容描述了Lucene评分如何从基本的检索模型发展到(有效的)实现。首先简单介绍V-score,从中导出Lucene的概念评分公式,最后开发Lucene的实用评分函数(后者与Lucene的类和方法直接相关)。
Lucene将检索到的布尔模型(BM)与检索到的向量空间模型(V)相结合——BM“批准”的文档由V评分。
在V中,文档和查询被表示为空间中的加权向量,其中每个不同的索引项是一个维度,权重是Tf-idf值。
v不需要将权重设置为Tf-idf值,但相信Tf-idf值可以产生高质量的搜索结果,所以Lucene使用了Tf-idf。TF和IDF将在下面更详细地描述,但是现在,在完成之后,我们只能说,对于给定的术语和文件(或查询)x,TF(T,x)随着出现在x中的项目数量而变化(当一个增加时,另一个增加),idf(t)同样随着包含项目T的索引文档数量的倒数而变化。
评分文档的d查询q是余弦相似度的加权向量查询和V(d)的和V(q):
其中v (q) v (d)是加权向量的点积,| V(q)|和| V(d)|是它们的欧氏准则。
注:在将V(q)除以其欧氏范数并归一化为单位向量的意义下,上述公式可视为归一化加权向量的点积。
Lucene改进了V评分,以提高搜索质量和可用性:
众所周知,将V(d)归一化为单位向量是有问题的,因为这会删除所有的文档长度。对于某些文档,可能可以删除它,例如,通过将一个段落复制10次而制作的文档,尤其是当该段落由不同的术语组成时。但是对于不包含重复段落的文档,这可能是错误的。为了避免这个问题,使用了不同的文档长度标准化因子,这些因子被标准化为等于或大于单位向量的向量:doc-len-norm(d)。
建立索引时,用户可以指定文档升级,以指定某些文档比其他文档更重要。所以每个文档的分数也要乘以它的推广值doc-boost(d)。
Lucene是基于字段的,所以每个查询词都适用于单个字段。文档长度的规范化取决于特定字段的长度,除了文档提升,还有文档字段提升。
在索引过程中,同一字段可以多次添加到文档中,因此字段的提升是单独(或部分)添加到文档中的字段的提升的产物。
搜索时,用户可以指定每个查询、子查询和每个查询词的提升,因此将查询词对文档评分的贡献乘以查询词对query-boost(q)的提升贡献。
文档可以匹配多词查询,而不包括查询的所有词(这对于某些查询是正确的)。
在简化索引中单个字段的假设下,我们得到Lucene的概念评分公式:
概念公式是以下几个方面的简化:(1)列出术语和文档,(2)推广通常是针对每个查询术语,而不是针对每个查询。
现在,我们描述一下Lucene是如何实现这个概念评分公式的,并从中得到Lucene的实用评分函数。
为了进行有效的分数计算,预先计算和总结了一些分数成分:
在搜索开始时,您将知道查询的查询增强(实际上是每个查询词)。
查询| V(q)|的欧几里德范数可以在搜索开始时计算,因为它与要评分的文档无关。从搜索优化的角度来看,为什么要费心将查询规范化是一个有效的问题,因为所有评分的文档都会乘以相同的| V(q)|。,因此文档排名(按分数排序)不会受到这种规范化的影响。维持这种正常化有两个很好的理由:
回想一下,余弦相似度可以用来寻找两个文档之间的相似度。例如,Lucene可以用于聚类,文档可以用作查询来计算它们与其他文档的相似度。在这种情况下,非常重要的文档的得分D3查询D1是与得分相当的文档的D3查询D2。换句话说,两个不同查询的文档分数应该是可以的。还有其他应用程序可能需要这样做。这正是规范化查询向量V(q)所提供的:两个或多个查询可以进行比较(在某种程度上)。
索引时,文档长度规格doc-len-norm(d)和文档增强doc-boost(d)是已知的。它们是预先计算的,它们的乘积作为单一值保存在指数范数(d)中。(在下面的等式中,norm(d中的T)表示norm(d字段在文档d中),其中字段(T)是与项目T相关联的字段..)
Lucene的实用评分函数就是从上面推导出来的。颜色代码说明了它与概念公式的关系:
1.TF(D中的t)与术语出现的频率有关,术语出现的频率定义为术语t在当前评分文档D中出现的次数..给定术语出现次数越多的文档得分越高。请注意,假设TF(q中的t)为1,因此它不会出现在此等式中。但是,如果查询两次包含同一个项目,那么将会有两次包含同一个项目的项目查询,所以计算仍然是正确的(虽然不是很有效)。默认情况下,中的Tf(t in d)计算为古典相似:
2.idf(t)表示反文档的频率。该值与docFreq(出现t的文档数)的倒数有关。这意味着较少的术语对总分的贡献更大。Idf(t)在查询和文档中显示为T,因此它在等式中是平方的。中idf(t)的默认计算是ClassicSimilaty:
3.t.getBoost()是查询文本中指定的查询Q中T项的搜索时间增量(见查询语法),也可以通过换行设置。请注意,在多词查询中,实际上没有直接的API来访问一个词的增强词,而是将多个词表示为查询中的多个对象,因此可以通过调用sub来访问查询中一个词的词缀。查询.BoostQueryTermQuerygetBoost()
4.norm(t,d)是一个索引时间提升因子,它只取决于文档中该字段的标签数量,因此较短的字段对分数的贡献更大。
api内容
1.org.apache.lucene:顶级包。
2.org . Apache . Lucene . analysis:文本分析。
3.org . Apache . Lucene . analysis . standard:一个基于语法的快速通用的令牌生成器,根据Unicode标准附件# 29中的StandardTokenizer,通过Unicode文本分割算法实现分词规则。
4.org . Apache . Lucene . analysis . token是文本分析的一个通用类别。
5.org . Apache . Lucene . codecs:codec API:用于定制索引编码和结构的API。
6.org . Apache . Lucene . codec . block tree:block tree术语词典。
7.org . Apache . Lucene . codec . compressing:storefields format,允许跨文档和跨字段压缩存储的字段。
8.索引格式org . Apache . Lucene . codecs . Lucene 50的组件:有关索引格式org . Apache . Lucene . codecs . Lucene 50的概述,请参考。
9.org . Apache . Lucene . codecs . Lucene 60:Lucene 6.0索引格式的一个组件。
10.org . Apache . Lucene . codecs . Lucen 62索引格式的组成部分:Lucen6.2有关org . Apache . Lucene . codecs . Lucen 70当前索引格式的概述,请参考。
1.org . Apache . Lucene . codecs . Lucen 70:Lucen 7.0文件格式。
12.org . Apache . Lucene . codec . perfect:您可以将每个字段委托给不同的帖子格式。
13.org.apache.lucene.document:文档A的逻辑表示,用于索引和搜索。
14.org . Apache . Lucene . geo:Lucencore地理空间实用程序的实现
15.org.apache.lucene.index:以及访问索引的代码。
16.org.apache.lucene.search:搜索索引的代码。
17.org.apache.lucene.search .相似点:这个软件包包含了各种可以在lucene中使用的排名模型。
18.org . Apache . Lucene . search . spans:span计算。
19.org.apache.lucene.store:所有索引数据的二进制I/O API。
20.org.apache.lucene.util:一些实用程序类。
21.org.apache.lucene.util.tomaton:正则表达式的有限状态自动机。
22.org . Apache . Lucene . util . bkd:block KD树,在本文描述的通用空间数据结构中实现。
23.org.apache.lucene.util.fst:有限状态传感器
24.org.apache.lucene.util.graph:用于将令牌流用作图的实用程序类。
25.org.apache.lucene.util.mutable:可比对象包装器
26.org.apache.lucene.util.packed:压缩整数数组和流。
- 安卓合集
- 软件合集
- 浏览器
- 电脑管家
- 安卓游戏
软件排行榜
热门推荐
-
VMware InstallBuilder Enterprise破解版
v20.12.0 / 347 MB / 简体中文
-
Spark Studio官方版
v2.6.3 / 7.78 MB / 简体中文
-
Yearning SQL审核平台官方版
v2.3.2 / 10.2 MB / 简体中文
-
Protege官方版
v5.5 / 38.3 MB / 简体中文
-
HUAWEI LiteOS Studio官方版
v1.45.6 / 115 MB / 简体中文
-
Huawei LiteOS官方版
v5.0.0 / 87.6 MB / 简体中文
-
C语言代码实例助手官方版
v1.0 / 38.5 MB / 简体中文
-
idle python中文汉化版
v3.7 / 1.62 MB / 简体中文
-
Metabase官方版
v0.37.5 / 45.8 MB / 简体中文
-
编程猫硬件助手官方版
v1.4.1.0 / 39.3 MB / 简体中文
装机必备软件
-
word文档密码破解工具应用软件
-
冰点还原永久免费版系统软件
-
人生日历应用软件
-
一彩送货单管理系统应用软件
-
Process View系统软件
-
开心手机恢复大师其他类别
-
pdf文件阅读器应用软件
-
视频剪辑格式工厂应用软件
-
PhotoMetri应用软件
-
specinker应用软件
-
miwifi驱动驱动工具
-
海洋色音效助手影音软件
-
乐播投屏影音软件
-
seo外链助手网络软件
-
AES安全加密记事本安全相关





