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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于LabVIEW的BeamGage自动化接口应用

设置 National Instruments LabVIEW可执行程序需要被配置为使用.NET 4框架。.NET允许自定义可执行程序的运行方式。可通过以下方式实现: 在LabVIEW安装目录中创建一个名为LabVIEW.exe.config的文本文件(例如:C:\Program Files\National Ins…

卸载干净 IDEA(图文讲解)

目录 1、卸载 IDEA 程序 2、注册表清理 3、残留清理 1、卸载 IDEA 程序 点击屏幕左下角 Windows 图标 -> 设置-控制面板->intellij idea 勾选第一栏 Delete IntelliJ IDEA 2022.2 caches and local history,表示同时删除 IDEA 本地缓存以及历史。 Delete I…

李宏毅机器学习课程笔记02 | 机器学习任务攻略General Guide

第一步:分析loss on training data 先检查在训练数据上模型是否很好的学习 情况1:如果在训练集上,loss很大,说明在训练资料上没有训练好 可能性1:设置的模型太简单了,模型存在model bias模型偏差&#x…

【C++】19.多态

文章目录 1. 多态的概念2. 多态的定义及实现2.1 多态的构成条件2.1.1 实现多态还有两个必须重要条件:2.1.2 虚函数 (Virtual Function)定义:特性:示例代码:代码分析1. 类定义部分2. 主函数部分运行结果 重点讲解1. 虚函数的作用2.…

光伏仿真与设计系统应用架构深度剖析

在光伏产业蓬勃发展的时代背景下,绿虫光伏仿真与设计系统成为推动其高效发展的核心力量。其应用架构涵盖多个关键步骤,每个环节都紧密相扣,共同构建起精准且高效的设计体系。 气象分析作为开篇之笔,起着基石般的重要作用。系统全…

进程间通讯

简介: 进程间通讯方式有: 1.内存映射(mmap): 使用mmap函数将磁盘空间映射到内存 2.管道 3.信号 4.套接字(socket) 5.信号机制 通过进程中kill函数,去给另一个函数发送信号&a…

空压机接入配置实例:利用 MODBUS - TCP 转 Ethernet IP 网关实现连接

在工业自动化生产环境中,空压机作为重要的气源设备,其稳定运行和有效监控对于整个生产流程至关重要。然而,不同厂家生产的空压机可能采用不同的通信协议,这给集中监控和管理带来了挑战。在本次案例中,我们遇到的空压机…

基于 Boost.Asio 和 Boost.Beast 的异步 HTTP 服务器(学习记录)

已完成功能: 支持 GET 和 POST 请求的路由与回调处理。 解析URL请求。 单例模式 管理核心业务逻辑。 异步 I/O 技术和 定时器 控制超时。 通过回调函数注册机制,可以灵活地为不同的 URL 路由注册处理函数。 1. 项目背景 1.1 项目简介 本项目是一个基于…

Harmony开发【笔记1】报错解决(字段名写错了。。)

在利用axios从网络接收请求时,发现返回obj的code为“-1”,非常不解,利用console.log测试,更加不解,可知抛出错误是 “ E 其他错误: userName required”。但是我在测试时,它并没有体现为空,…

Spring源码分析之事件机制——观察者模式(二)

目录 获取监听器的入口方法 实际检索监听器的核心方法 监听器类型检查方法 监听器的注册过程 监听器的存储结构 过程总结 Spring源码分析之事件机制——观察者模式(一)-CSDN博客 Spring源码分析之事件机制——观察者模式(二&#xff…

关于Mac中的shell

1 MacOS中的shell 介绍: 在 macOS 系统中,Shell 是命令行与系统交互的工具,用于执行命令、运行脚本和管理系统。macOS 提供了多种 Shell,主要包括 bash 和 zsh。在 macOS Catalina(10.15)之前&#xff0c…

【C++】20.二叉搜索树

文章目录 1. 二叉搜索树的概念2. 二叉搜索树的性能分析3. 二叉搜索树的插入4. 二叉搜索树的查找5. 二叉搜索树的删除6. 二叉搜索树的实现代码7. 二叉搜索树key和key/value使用场景7.1 key搜索场景:7.2 key/value搜索场景:7.3 主要区别:7.4 ke…

【大模型+本地自建知识图谱/GraphRAG/neo4j/ollama+Qwen千问(或llama3)】 python实战(中)

一、建立基本的知识图谱并导入neo4j 这里我举例用的属性表、关系表,大概格式如下 id名字颜色a1苹果红色 startrelenda1属于b1 启动neo4j(关于neo4j的安装此处不再赘述) import pandas as pd from py2neo import Graph, Node, Relationship…

【pyqt】(四)Designer布局

布局 之前我们利用鼠标拖动的控件的时候,发现一些部件很难完成对齐这些工作,pyqt为我们提供的多种布局功能不仅可以让排版更加美观,还能够让界面自适应窗口大小的变化,使得布局美观合理。最常使用的三种布局就是垂直河子布局、水…

解决“KEIL5软件模拟仿真无法打印浮点数”之问题

在没有外部硬件支持时,我们会使用KEIL5软件模拟仿真,这是是仿真必须要掌握的技巧。 1、点击“Project”,然后点击“Options for target 项目名字”,点击“Device”,选择CPU型号。 2、点击“OK” 3、点击“Target”,勾选“Use Mi…

【项目实战1】五子棋游戏

目录 C语言编程实现五子棋&#xff1a;&#xff1a; game.h game.c 1.打印菜单 2.打印棋盘 3.玩家下棋 4.判断五子连珠 5.判断输赢 6.游戏运行 game.c完整源代码展示 test.c C语言编程实现五子棋&#xff1a;&#xff1a; game.h #pragma once #include<stdio.h> …

用ResNet50+Qwen2-VL-2B-Instruct+LoRA模仿Diffusion-VLA的论文思路,在3090显卡上训练和测试成功

想一步步的实现Diffusion VLA论文的思路&#xff0c;不过论文的图像的输入用DINOv2进行特征提取的&#xff0c;我先把这个部分换成ResNet50。 老铁们&#xff0c;直接上代码&#xff1a; from PIL import Image import torch import torchvision.models as models from torch…

Spring Boot 项目自定义加解密实现配置文件的加密

在Spring Boot项目中&#xff0c; 可以结合Jasypt 快速实现对配置文件中的部分属性进行加密。 完整的介绍参照&#xff1a; Spring Boot Jasypt 实现application.yml 属性加密的快速示例 但是作为一个技术强迫症&#xff0c;总是想着从底层开始实现属性的加解密&#xff0c;…

A/B实验之置信检验(一):如何避免误判 (I类) 和漏报 (II类)

假设检验的依据&#xff1a;如何避免误判和漏报 A/B实验系列相关文章&#xff08;置顶&#xff09; 1.A/B实验之置信检验&#xff08;一&#xff09;&#xff1a;如何避免误判和漏报 2.A/B实验之置信检验&#xff08;二&#xff09;&#xff1a;置信检验精要 引言 在数据驱动…

每日一题:链表中环的入口结点

文章目录 判断链表环的入口节点描述数据范围&#xff1a;复杂度要求&#xff1a;输入输出 示例代码实现思路解析注意事项&#xff1a; 判断链表环的入口节点 描述 给定一个链表&#xff0c;判断该链表是否存在环。如果存在环&#xff0c;返回环的入口节点&#xff1b;如果不存…