Lucene 生日快乐

庆祝 Apache Lucene 诞生 20 周年

Apache Lucene 是 Elasticsearch 的支柱,它证明了当开源软件得到蓬勃发展的社区的培育时,它可以蓬勃发展,并成长为支持全球数字体验的技术。Elastic 通过一个共同的时间线来庆祝与 Lucene 代码和社区的联系和整合,该时间线突出了有趣的事实和关键的里程碑。

2000

一切始于 Java

当 Doug Cutting 决定学习 Java 时,他通过创建一个新的搜索索引器项目来磨练自己的技能。这项努力使他编写了 Lucene 的第一个版本,并于 2000 年 4 月通过 SourceForge 将其作为免费开源软件提供。Lucene 是 Doug 的第五个搜索引擎,之前他在 Xerox PARC 编写了两个,在 Apple 编写了一个,在 Excite 编写了第四个。

Doug Cutting
icon-fun-facts-speakerphone-color.svg

趣闻

名字的由来是什么?Lucene 这个名字是 Doug 妻子的中间名,也是她祖母的名字。

每个人都有一个起源故事

每个人都有自己独特的关于如何开始使用 Lucene 的故事。你的故事将如何开始?

Video thumbnail

Lucene 加入 Apache

9 月,Lucene 加入 Apache Jakarta 项目。Jakarta 是一系列开源 Java 项目,包括 Apache Tomcat 和 Apache Struts。

Illustration
icon-milestone-flag-color.svg

里程碑

Lucene 1.2 成为 Apache 许可下 Lucene 的第一个版本,标志着它从 LGPL 许可的转变。

致力于开源

2002 年,Lucene 收到了来自 13 位作者的近 400 次提交,此后提交数量一直在增长。观察最初几年的提交情况,看看它们是如何随着时间的推移而增长的。

Video thumbnail
icon-milestone-flag-color.svg

里程碑

Lucene 1.3 引入了一些早期的灵活性,PerFieldAnalyzerWrapper 允许字段使用不同的方法进行标记化。

Shay Banon 发布了 Compass——一个基于 Lucene 构建的开源项目——旨在简化搜索与任何 Java 应用程序的集成。Compass 将成为 Elasticsearch 的前身。

Illustration
icon-milestone-flag-color.svg

里程碑

Lucene 1.4 引入了点击排序,允许根据任何索引字段对给定查询的结果进行排序。

为(代码)编写者阅读

Lucene in Action 首次出版。这本 Lucene 指南仍然是该项目最畅销的技术手册。

Mike McCandless
icon-fun-facts-speakerphone-color.svg

趣闻

2005 年,来自 11 位作者的提交次数为 484 次。

致力于解决大大小小的问题

可视化 2005-2009 年 Lucene 的提交情况

Video thumbnail
icon-milestone-flag-color.svg

里程碑

Lucene 1.9 引入了 DateTools,允许用户格式化日期以提高可读性,以及处理 1970 年之前的日期。

icon-milestone-flag-color.svg

里程碑

Lucene 2.0 除了删除了已弃用的 API 外,其他方面与 1.9 相同。有些人将该项目的长期存在归功于这种维护方式。

icon-fun-facts-speakerphone-color.svg

趣闻

在 Doug 的帮助下,Shay 提交了他对 Lucene 代码库的第一次贡献 (LUCENE-511)。Elastic 的另一位联合创始人 Simon Willnauer 也与 Doug 合作,根据请求在 Lucene 之上实现了 GData 服务器 (LUCENE-578)。

查看 Shay 和 Simon 的所有工单
icon-milestone-flag-color.svg

里程碑

Lucene 2.1 更新了 QueryParser,允许以 Unicode 转义形式添加 Unicode 字符。\u1F973 \u1F973 \u1F973

icon-milestone-flag-color.svg

里程碑

Lucene 2.2 包含一些影响巨大的小优化。将缓冲区大小增加到两个,可使写入性能提高 10-18%。

icon-fun-facts-speakerphone-color.svg

趣闻

Doug 的第一条推文宣布了一项令人兴奋的新速度功能。

系好安全带

庆祝社区

对于一个开源项目来说,20 年是一段很长的时间。毫无疑问,Lucene 的长寿证明了其社区的力量和多样性。

Video thumbnail
icon-milestone-flag-color.svg

里程碑

Lucene 2.3 改进了 IndexWriter 利用 RAM 缓冲文档的方式,使索引速度提高了 2-8 倍。

icon-fun-facts-speakerphone-color.svg

趣闻

社区最初的邮件列表至今仍在活跃。

icon-milestone-flag-color.svg

里程碑

Lucene 2.9 更改了其 API,以反映其索引的分段结构,通过这种新的重新调整提高了速度。

icon-milestone-flag-color.svg

里程碑

Lucene 3.0 是第一个在运行时需要 Java 5 的版本,它利用了新的 JVM 功能,如泛型、枚举和可变参数。

icon-fun-facts-speakerphone-color.svg

趣闻

Elastic 的联合创始人 Uri Boness 创建了第一个荷兰 Lucene 用户组。

查看公告

连接代码

Lucene 和 Solr 存储库已合并。虽然共享同一个存储库,但 Lucene 仍然可以单独下载和使用。

Illustration
icon-fun-facts-speakerphone-color.svg

趣闻

Elasticsearch 0.1.0 于 2 月 7 日发布!这个开源的、分布式的、RESTful 的搜索引擎是基于 Lucene 构建的。

icon-fun-facts-speakerphone-color.svg

趣闻

Simon 创建了 Berlin Buzzwords,这是一个专注于致力于大数据管理的开源软件项目的会议。

致力于构建强大的社区

可视化 2010-2014 年 Lucene 的提交情况

Video thumbnail
icon-fun-facts-speakerphone-color.svg

趣闻

Twitter 实现了 Lucene 的补丁版本,用于实时搜索。

icon-milestone-flag-color.svg

里程碑

Lucene 3.4 引入了块连接,允许高效的 1-N 连接。

4.0?哇哦!

Lucene 4.0 充满了重要的新功能。通过 Codecs API 提高了索引灵活性,添加了相似性模型(BM25、DFR 等),以及文档值的引入,将 Lucene 提升到了严肃分析的世界。

Illustration
icon-fun-facts-speakerphone-color.svg

趣闻

2 月 9 日,也就是第一个 Elasticsearch 提交的几乎整整两年后,Elastic 由 Steven Schuurman、Uri Boness 以及 Lucene 贡献者 Simon Willnauer 和 Shay Banon 创立。嘿,那就是我们!

我们的故事
icon-milestone-flag-color.svg

里程碑

Lucene 4.3 添加了一个成本 API 来估算查询匹配计数。这通过首先运行廉价查询来显著提高速度。

icon-fun-facts-speakerphone-color.svg

趣闻

如今,搜索建议已成为标配,但这并不意味着它们很容易实现。了解 Lucene 如何首次处理这项复杂的任务。

对 Lucene 的持续承诺

Apache Lucene 是 Elasticsearch 的核心,Elastic 一直将为核心 Lucene 做出贡献作为一项优先事项。事实上,核心提交者从第一天起就是 Elastic 团队的成员。

Illustration
icon-milestone-flag-color.svg

里程碑

Lucene 4.8 实现了一种通用格式,其中包括所有索引文件的校验和,从而可以更好地检测硬件错误。

可视化 2015-2019 年的 Lucene 提交

Video thumbnail
icon-milestone-flag-color.svg

里程碑

Lucene 5.0 的主要动机是取消了对 3.x 索引的支持。管理技术债务并不光鲜亮丽,但很重要。

icon-milestone-flag-color.svg

里程碑

Lucene 5.1 为短语查询添加了两阶段交集,通过将近似和确认分为两个步骤来提高速度。

icon-fun-facts-speakerphone-color.svg

趣闻

Elastic 的第一篇《本周 Elasticsearch 和 Apache Lucene》博客于 3 月 25 日发布,该系列一直持续到 2020 年。

看一看

分支出来

随着用于多维搜索的 BKD 树数据结构的引入,Lucene 不再仅仅是一个全文搜索引擎,而是一个可以搜索任何东西的搜索引擎。这为我们目前在地理空间搜索、使用动态特征评分等领域看到的进步打开了大门。

Illustration
icon-milestone-flag-color.svg

里程碑

Lucene 6.0 增加了对索引多维点(BKD 树)的支持,并将 BM25 设置为默认相似度模型(而不是 TF/IDF)。

icon-fun-facts-speakerphone-color.svg

趣闻

Lucene 从 Subversion 存储库迁移到 Git,允许用户更准确地控制版本和发布。

现在具有...

经过 20 年的社区开发,称 Lucene“功能丰富”是一种轻描淡写。有这么多功能可供选择,每个人都有一些最喜欢的功能。

Video thumbnail
icon-milestone-flag-color.svg

里程碑

Lucene 6.5 引入了以最有效的方式自动运行范围查询的逻辑,从而显着提高了性能。

icon-milestone-flag-color.svg

里程碑

Lucene 7.0 将文档值 API 从随机访问更新为迭代访问,从而优化了稀疏数据(几乎为空的字段)的性能。

展望未来

Lucene 的可能性是无限的。了解未来可能发生的事情,以及人们兴奋的事情。

Video thumbnail
icon-milestone-flag-color.svg

里程碑

Lucene 7.6 允许 BKD 树索引其维度的一个子集,有效地将它们视为 R 树(地理空间中的标准结构)。

神奇的 WAND

Lucene 8.0 实现了 Block-Max WAND 算法,通过从集合中排除得分较低的结果,大大提高了大型文档集合的搜索结果速度。

Illustration

Lucene 20 岁了!

对于那些多年来为 Lucene 做出贡献的人,我们所有享受这个令人难以置信的开源项目的人都向您表示衷心的感谢。我们期待着未来更多年的搜索创新,并很高兴看到还有谁加入该项目。

Illustration
icon-fun-facts-speakerphone-color.svg

趣闻

Lucene 社区成员合作撰写了一篇学术论文,重点介绍了技术进步与学术界的交叉点。

icon-fun-facts-speakerphone-color.svg

趣闻

是否担心向 Lucene 提交您的第一个拉取请求?别担心!尊重和友善是这个蓬勃发展的开源社区的核心。

2050

01001100!

人工智能机器人通过星际庆祝活动纪念 Lucene 诞生 50 周年。赞美 Lucene 新的维度间索引功能的人工智能生成诗歌充斥着外部网络,导致所有宇宙的服务器崩溃,并使任何其他过时的提高人类生产力的努力变得毫无用处。

Illustration