2023年Lucene进展

2023年对于Apache Lucene来说又是重要的一年,这篇博客回顾了2023年的主要里程碑。

2023年已经结束,对于Apache Lucene的开发来说,又是忙碌的一年。让我们花些时间回顾一下去年的亮点。

社区

2023年,有:

  • 5个小版本发布 (9.5, 9.6, 9.7, 9.8 和 9.9),
  • 1个补丁版本发布 (9.9.1),
  • 1位新的提交者,
  • 4位新的PMC成员,
  • 来自97位唯一贡献者的620次提交。

真正语义搜索在检索和检索增强生成方面的潜力对大小用户都非常有吸引力。因此,向量搜索成为2023年Apache Lucene的主要主题也就不足为奇了。更具体地说,在多个版本中添加了许多有趣的功能和优化。

  • 支持int8向量。(Lucene 9.5)
  • 更快的HNSW图合并。(Lucene 9.6)
  • 通过支持矢量化 (Lucene 9.7) 和FMA (Lucene 9.9) 来加快索引、合并和查询速度。
  • 支持将向量搜索与块连接结合使用。(Lucene 9.8)
  • 支持在索引时对向量进行自动int8标量量化。(Lucene 9.9)

到处使用基数排序

索引是将数据组织起来以便在搜索时能够高效访问的一种方式,这在实践中涉及大量的排序。在排序方面,基数排序 是最佳选择(在适用情况下!)。Lucene 已经使用基数排序一段时间了,用于一些对性能要求很高的位置,例如对段的术语字典进行排序。但在2023年,基数排序的使用进一步增加,它开始被用于优化:

更快的查询评估

我们已经介绍了向量搜索的一些性能改进,但关键字搜索在2023年也获得了重大的速度提升。查看这篇博客,其中介绍了9.7、9.8和9.9版本中出现的主要速度提升。这些改进适用于传统的关键字搜索和稀疏向量搜索,例如由学习的稀疏检索模型创建的搜索。

与Java虚拟机的更紧密集成

作为Java库,Lucene很大程度上依赖于Java虚拟机(JVM),偶尔会发布一些对Lucene特别有趣的新功能。特别是以下两个功能已经集成,如果您在足够新的JVM版本上运行,则它们将自动使用。

很难划清界限,但我将在此停止,因为我很难为我在2023年看到的其他好的更改找到共同的主题。:)敬请期待Apache Lucene在2024年取得的重大进展!

Elasticsearch 充满了新功能,可以帮助您为您的用例构建最佳搜索解决方案。深入了解我们的示例笔记本以了解更多信息,开始免费云试用,或者现在就在您的本地机器上试用 Elastic。

准备好构建最先进的搜索体验了吗?

充分先进的搜索并非一人之力所能完成。Elasticsearch 由数据科学家、ML运维工程师和其他许多对搜索同样充满热情的人员提供支持。让我们联系起来,共同努力构建神奇的搜索体验,让您获得想要的结果。

亲自动手试试