Lucene
来自维基百科,自由的百科全书
Lucene是一套用于全文检索和搜寻的开放源码程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式介面,能够做全文索引和搜索。Lucene被广泛应用作搜索应用的标准基础库[1][2][3]。
Lucene现已被移植到其他编程语言,包括Object Pascal、Perl、C♯、C++、Python、Ruby和PHP[4]。
历史
Doug Cutting在1999年编写了Lucene[5],他是一位资深的全文索引及检索专家,曾经是V-Twin搜索引擎的主要开发者,后来在Excite担任高级系统架构设计师,目前从事于一些互联网底层架构的研究。他贡献出Lucene的目标是为各种中小型应用程式加入全文检索功能。Lucene最初可以从SourceForge网站的主页下载,它于2001年9月加入Apache软件基金会的Jakarta开源Java产品家族,并于2005年2月成为独立的顶级Apache项目。Lucene这个名字是Doug Cutting妻子的中间名,也是她外祖母的名字[6]。
Lucene以前包含了许多子项目,例如 Lucene.NET、Mahout、Tika and Nutch。这三个现在已经成为了独立的顶级Apache项目。
2010年3月,Apache Solr搜索服务器作为Lucene子项目加入,合并了开发者社区。
4.0版于2012年10月12日发布[7]。
2021年3月,Lucene更改了logo,Apache Solr再次成为顶级Apache项目,独立于 Lucene。
功能和常见用途
虽然理论上Lucene适用于任何需要全文索引和搜索功能的应用程序,但其主要是因为在Internet搜索引擎和本地单站点搜索实现中的实用性而受到认可[8][9]。
Lucene也被用于实现推荐系统[11]。例如,Lucene的'MoreLikeThis'类可以生成相似文档的推荐。在将“MoreLikeThis”基于向量的相似性方法与基于引用的文档相似性度量(例如共引和共引邻近度分析)进行比较时,Lucene的方法在推荐具有非常相似的结构特征和更窄相关性的文档上表现出色[12]。相比之下,基于引用的文档相似性度量往往更适合推荐更广泛相关的文档[12]。
基于Lucene的项目
Lucene本身只是一个索引和搜索库,不包含爬取和HTML解析功能。但是,以下的项目扩展了Lucene的功能:
- Apache Nutch — 提供成熟可用的网络爬虫[13]
- Apache Solr — 基于Lucene核心的高性能搜索服务器,提供JSON/Python/Ruby API[14]
- Compass – Elasticsearch的前身[15]
- CrateDB – 基于Lucene构建的开源分布式SQL数据库[16]
- DocFetcher — 跨平台的本机文件搜索桌面程序[来源请求][17]
- Elasticsearch —企业搜索平台,目的是组织数据并使其易于获取[18]
- Kinosearch – 用Perl和C语言[19]实现的搜索引擎与Lucene的移植[20]。Socialtext wiki[19]和MojoMojo wiki均使用了这一搜索引擎[21]。 它在人类代谢物组数据库(HMDB)[22] 和毒素与毒素目标数据库(T3DB)[23]中亦有应用。
- MongoDB Atlas Search – 基于MongoDB和Apache Lucene的云原生企业搜索应用程序
- OpenSearch – 基于Elasticsearch 7的开源企业级搜索服务器
- Swiftype — 基于Lucene的企业级搜索[24]
- Lucene.NET — 提供给.Net平台用户的Lucene类库的封装[25]
- Apache Lucy — 为动态语言提供全文搜索的能力,是Lucene Java 库的C接口[26]
- Luke — Java编写的用户界面用于编辑Lucene的索引,此项目已停止开发[27]
参见
- Solr - 使用Lucene的企业搜索伺服器,亦由Apache软件基金会所研发。
参考资料
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.