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 进一步提高速度等等。

以下是完整的发布列表:

  • 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。

原文:Lucene Wrapped 2024 - Elasticsearch Labs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/502037.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(四)基于STM32通过Event Recoder实现时间测量功能

目录 1. 了解Event Recorder 2. 硬件和软件准备 硬件需求 软件需求 3. 配置STM32工程 使用STM32CubeMX初始化项目 配置Event Recorder 4. 实现时间记录功能 初始化Event Recorder 时间间隔计算 配置Debug选项 测量结果查看 5总结 在嵌入式系统开发中,精…

Java 内存溢出(OOM)问题的排查与解决

在 Java 开发中,内存溢出(OutOfMemoryError,简称 OOM)是一个常见且棘手的问题。相比于数组越界、空指针等业务异常,OOM 问题通常更难定位和解决。本文将通过一次线上内存溢出问题的排查过程,分享从问题表现…

Python、R用深度学习神经网络组合预测优化能源消费总量时间序列预测及ARIMA、xgboost对比...

全文链接:https://tecdat.cn/?p38726 分析师:Qingxia Wang 在能源领域,精准预测能源消费总量对制定合理能源战略至关重要。当前,能源消费预测分析主要运用单一模型(如灰色预测法、时间序列分析法等)和组合…

【LLM-Agent】Building effective agents和典型workflows

note Anthropic的工程经验: 大道至简,尽量维护系统的简洁;尽量让过程更加透明(因为你依赖的是LLM的决策,如果只看输出不看过程,很容易陷入难以debug的情况);对LLM需要调用的工具&am…

音视频入门基础:MPEG2-PS专题(4)——FFmpeg源码中,判断某文件是否为PS文件的实现

一、引言 通过FFmpeg命令: ./ffmpeg -i XXX.ps 可以判断出某个文件是否为PS文件: 所以FFmpeg是怎样判断出某个文件是否为PS文件呢?它内部其实是通过mpegps_probe函数来判断的。从《FFmpeg源码:av_probe_input_format3函数和AVI…

CSS——5. 外部样式

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>方法3&#xff1a;外部样式</title><link rel"stylesheet" href"a.css" /><link rel"stylesheet" href"b.css"/&g…

lenovo联想IdeaPad 15sIML 2020款(81WB)笔记本电脑原装出厂OEM预装系统Windows10镜像下载

适用机型 &#xff1a;【81WB】 链接&#xff1a;https://pan.baidu.com/s/1SF9uWaNdCKPkwKgsCWb18g?pwdh6qe 提取码&#xff1a;h6qe 联想原厂WIN系统自带所有驱动、带Recovery恢复重置、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软件、联想…

WPS表格技巧01-项目管理中的基本功能-计划和每日记录的对应

前言&#xff1a; 在项目管理中&#xff0c;一般就是用些项目管理工具来管理这个任务和 task&#xff0c;但是就是要学这些工具很麻烦&#xff0c;比较好的方法&#xff0c;通用的方法就是用 Excel 表格去做&#xff08;这非常适合松散的团队组织&#xff09;&#xff0c;然后…

《前端web开发-CSS3基础-1》

文章目录 《前端web开发-CSS3基础》1.CSS引入方式2.选择器-标签和类3.选择器-id和通配符选择器4.画盒子5.字体修饰属性6.字体大小、粗细和倾斜6.1字体大小6.2 字体粗细6.3字体倾斜 7.行高8.字体族9.font复合属性10.缩进、对齐和修饰线10.1 文本缩进10.2 文本和图片对齐10.3 文本…

Mac M2基于MySQL 8.4.3搭建(伪)主从集群

前置准备工作 安装MySQL 8.4.3 参考博主之前的文档&#xff0c;在本地Mac安装好MySQL&#xff1a;Mac M2 Pro安装MySQL 8.4.3安装目录&#xff1a;/usr/local/mysql&#xff0c;安装好的MySQL都处于运行状态&#xff0c;需要先停止MySQL服务最快的方式&#xff1a;系统设置 …

网络IP协议

IP&#xff08;Internet Protocol&#xff0c;网际协议&#xff09;是TCP/IP协议族中重要的协议&#xff0c;主要负责将数据包发送给目标主机。IP相当于OSI&#xff08;图1&#xff09;的第三层网络层。网络层的主要作用是失陷终端节点之间的通信。这种终端节点之间的通信也叫点…

密钥管理系统在数据安全解决方案中的重要性

密钥管理系统在数据安全解决方案中占据着举足轻重的地位&#xff0c;其重要性体现在以下几个方面&#xff1a;一、保障数据机密性 密钥管理系统通过生成、存储和管理加密密钥&#xff0c;确保了数据的机密性。这些密钥用于加密和解密数据&#xff0c;只有授权用户才能访问和使…

关于PINN进一步的探讨

pinn 是有监督、无监督、半监督&#xff1f; PINN&#xff08;Physics-Informed Neural Networks&#xff0c;物理信息神经网络&#xff09;通常被归类为一种有监督学习的方法。在PINN中&#xff0c;神经网络的训练过程不仅依赖于数据点&#xff08;例如实验观测数据&#xff0…

设计形成从业务特点到设计模式的关联

规范和指引在应用架构、数据架构等各架构方向上形成规范性约束指导。同一个决策要点、架构单元在统一的架构原则指导下&#xff0c;会因业务特点差异有不同的实现&#xff0c;经过总结形成了最佳实践。在开展新应用的设计时&#xff0c;根据决策要点以及相关的业务特点&#xf…

Framebuffer 驱动

实验环境: 正点原子alpha 开发板 调试自己编写的framebuffer 驱动,加载到内核之后,显示出小企鹅 1. Framebufer 总体框架 fbmem.c 作为Framebuffer的核心层,向上提供app使用的接口,向下屏蔽了底层各种硬件的差异; 准确来说fbmem.c 就是一个字符设备驱动框架的程序,对…

STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)

一&#xff1a;步进电机简介 步进电机又称为脉冲电机&#xff0c;简而言之&#xff0c;就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩&#xff0c;步进电机的角位移量与输入的脉冲个数严格成正…

WPS-JS宏快速上手

WPS JS宏注意事项 代码后面可以不写分号“ ; ”&#xff1b; 缩进对程序的运行影响不大&#xff0c;但为了易读&#xff08;防止自己以后看不懂&#xff09;&#xff0c;还是乖乖写好&#xff1b; 代码是逐行运行的&#xff0c;意味着下面一行代码错了&#xff0c;前面的代码…

Conda 安装 Jupyter Notebook

文章目录 1. 安装 Conda下载与安装步骤&#xff1a; 2. 创建虚拟环境3. 安装 Jupyter Notebook4. 启动 Jupyter Notebook5. 安装扩展功能&#xff08;可选&#xff09;6. 更新与维护7. 总结 Jupyter Notebook 是一款非常流行的交互式开发工具&#xff0c;尤其适合数据科学、机器…

【CVPR 2024】【遥感目标检测】Poly Kernel Inception Network for Remote Sensing Detection

0.论文摘要 摘要 遥感图像&#xff08;RSIs&#xff09;中的目标检测经常面临几个日益增加的挑战&#xff0c;包括目标尺度的巨大变化和不同范围的背景。现有方法试图通过大核卷积或扩张卷积来扩展主干的空间感受野来解决这些挑战。然而&#xff0c;前者通常会引入相当大的背…

C++语言编程————C++的输入与输出

1.面向过程的程序设计和算法 在面向过程的程序设计中&#xff0c;程序设计者必须指定计算机执行的具体步骤&#xff0c;程序设计者不仅要考虑程序要“做什么”&#xff0c;还要解决“怎么做”的问题&#xff0c;根据程序要“做什么”的要求&#xff0c;写出一个个语句&#xff…