作者:来自 Elastic Chris Hegarty
2024 年对于 Apache Lucene 来说又是重要的一年。在本篇博文中,我们将探讨主要亮点。
Apache Lucene 在 2024 年表现出色,发布了许多版本,包括三年来的首次重大更新,其中包含令人兴奋的改进和新功能。让我们来探索一些关键亮点。
社区
一个项目的强大程度取决于支持它的社区。尽管已经发展了近 20 年,但 Lucene 项目仍然充满活力,并因其热情而活跃的贡献者而蓬勃发展。
2024 年,Lucene 项目已收到来自 98 位独特贡献者的 2,000 多次提交和近 800 次拉取请求。贡献者的数量持续增长,新的提交者和 PMC 成员加入该项目并帮助推动其成功。
Lucene 10
2024 年迎来了近 3 年来的第一个主要版本 - Lucene 10,有来自 185 位独特贡献者的 2,000 多次提交。虽然 Lucene 遵循的开发模型允许在小版本中提供许多改进和功能,但主要版本提供了带来更大功能和现代化的机会。例如,Lucene 10 至少需要 Java 21。提高最低 Java 版本可确保 Lucene 可以继续利用现代 Java 提供的改进。
Lucene 10 的主要重点是更好地利用其运行的硬件。让我们快速浏览一下一些主要亮点:
- 更多搜索并行性 - 虽然搜索执行已经跨段并行化,但我们现在更进一步,在段内并行化。这将磁盘上的表示(on-disk representation)与执行性能分离,甚至允许单个段受益于现代系统上的核心数量。
- 更好的 I/O 并行性- Lucene 使用的简单同步 I/O 模型已通过预取阶段得到增强。这会通知操作系统,索引文件的某个区域在不久的将来会被需要,但不会阻塞调用线程。
- 使用稀疏索引可提高 CPU 和存储效率 - Lucene 10 引入了对稀疏索引的支持,在其他数据存储中,稀疏索引有时称为主键索引或区域索引。
- 有关 Lucene 10 的更多信息,请查看有关 Lucene 10 的专门文章。
研究与创新
2024 年,Lucene 的研究和创新激增,特别是在机器学习集成、向量搜索和大规模数据集优化领域,参考了 10 篇独立的研究论文和出版物。一些关键研究领域和发展包括:
- 向量搜索和嵌入支持 - Lucene 为基于向量的搜索提供了强大且可扩展的解决方案,实现了大规模语义检索。通过利用 Lucene 强大的索引(indexing)和搜索(search)基础架构,用户可以将传统文本搜索的最佳功能与现代向量搜索的高级功能相结合,使 Lucene 成为广泛搜索和信息检索任务的综合解决方案。
- 混合搜索模型 - 研究还深入研究了混合搜索技术,其中 Lucene 将传统的基于关键字的搜索与现代基于向量的检索相结合。通过将基于术语的索引与密集向量表示合并,Lucene 可以提供更准确、上下文相关的搜索结果,弥合传统搜索引擎的精确度与语义搜索的灵活性之间的差距。
2024 年正在进行的研究工作表明 Lucene 能够适应现代搜索技术不断变化的需求,特别是在人工智能、语义搜索和大数据应用的背景下。该项目将继续发展成为一个强大、灵活且高效的平台,适用于传统和前沿搜索用例。
如此多的发布
虽然不能准确反映,但发布的数量之多凸显了社区的持续奉献和活力。这些更新包括对矢量搜索性能和效率的重大增强、对 madvise 的支持、对帖子列表解码的优化、通过 SIMD 进一步提高速度等等。
以下是完整的发布列表:
- 10.1.0 (2024-12-20)
- 9.12.1 (2024-12-13)
- 10.0.0 (2024-10-14)
- 9.12.0 (2024-09-28)
- 8.11.4 (2024-09-24)
- 9.11.1 (2024-06-27)
- 9.11.0 (2024-06-06)
- 9.10.0 (2024-02-20)
- 8.11.3 (2024-02-08)
- 9.9.2 (2024-01-29)
你可以在 Lucene Core 页面上找到更多信息和发布说明。此外,还有等效的 PyLucene 版本。
总结
随着 Lucene 从青少年时期过渡到更加成熟,它在其专注而充满活力的社区的帮助下继续蓬勃发展。正如我们所见,2024 年是极其富有成效的一年,现在我们展望 2025 年将带来的激动人心的发展。
Elasticsearch 包含许多新功能,可帮助你为你的用例构建最佳搜索解决方案。深入了解我们的示例笔记本以了解更多信息,开始免费云试用,或立即在你的本地机器上试用 Elastic。