Elasticsearch:Lucene 2024 年回顾

作者:来自 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 进一步提高速度等等。

以下是完整的发布列表:

你可以在 Lucene Core 页面上找到更多信息和发布说明。此外,还有等效的 PyLucene 版本。

总结

随着 Lucene 从青少年时期过渡到更加成熟,它在其专注而充满活力的社区的帮助下继续蓬勃发展。正如我们所见,2024 年是极其富有成效的一年,现在我们展望 2025 年将带来的激动人心的发展。

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

原文:Lucene Wrapped 2024 - Elasticsearch Labs

相关推荐
happybasic15 分钟前
通过纯文字引导DeepSeek编写一个简单的中国象棋引擎~
人工智能·python·中国象棋·deepseek
代码驿站52016 分钟前
PHP语言的并发编程
开发语言·后端·golang
毕业设计-0117 分钟前
0042.大学校园生活信息平台+论文
java·spring boot·后端·毕业设计·源代码管理
老大白菜17 分钟前
第1章:Go语言入门
开发语言·后端·golang
夜幕龙18 分钟前
Dexcap复现代码数据预处理全流程(四)——demo_clipping_3d.py
人工智能·python·机器人
DevOpsDojo21 分钟前
MATLAB语言的正则表达式
开发语言·后端·golang
farewell-Calm1 小时前
分布式搜索引擎之elasticsearch基本使用3
分布式·elasticsearch·搜索引擎
桂月二二2 小时前
深入探索 Rust 中的异步编程:从基础到实际案例
开发语言·后端·rust
电子基础知识2 小时前
NanoEdge AI Studio入门
人工智能·硬件工程
LeeZhao@2 小时前
【项目】多模态图文理解-GLM-Edge实战
人工智能·yolo·计算机视觉·语言模型·aigc