Elasticsearch:2023 年 Lucene 领域发生了什么?

news2024/12/27 11:11:31

作者:来自 Elastic Adrien Grand

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)

基数排序随处可见

索引是指以一种可以在搜索时有效访问数据的方式组织数据,这在实践中涉及大量排序。 当谈到排序时,基数排序 (radix sort) 是王道(如果适用的话!)。 Lucene 已经在一些性能敏感的地方使用基数排序有一段时间了,例如对段的术语字典进行排序。 但基数排序的使用在 2023 年进一步增加,并开始用于优化:

  • 应用于删除,
  • 启用索引排序时对 sorting postings 排序,
  • TermInSetQuery 构造,
  • 索引重新排序。

更快的查询评估

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

与 Java 虚拟机更紧密的集成

作为一个 Java 库,Lucene 很大程度上依赖于 Java 虚拟机 (JVM),并且偶尔会发布 Lucene 特别感兴趣的新功能。 特别集成了两个功能,如果你在足够现代的 JVM 版本上运行,那么它们将被自动使用:

  • Panama vector API 用于加速向量比较,例如计算两个向量之间的余弦相似度或平方距离。
  • Panama MemorySegment API 是一个改进的 API,用于将文件映射到内存中。

很难划清界限,但我会在这里停下来,因为我正在努力寻找 2023 年发生的其他良好变化的共同主题。:) 请继续关注 Apache Lucene 领域上的美好 2024 年!

原文:What happened in Lucene land in 2023? — Elastic Search Labs

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣740. 删除并获得点数

动态规划 思路: 选择元素 x,获得其点数,删除 x 1 和 x - 1,则其他的 x 的点数也会被获得;可以将数组转换成一个有序 map,key 为 x, value 为对应所有 x 的和;则问题转换成了不能同…

uniapp中打包Andiord app,在真机调试时地图以及定位功能可以正常使用,打包成app后失效问题(高德地图)

踩坑uniapp中打包Andiord app,在真机调试时地图以及定位功能可以正常使用,打包成app后失效问题_uniapp真机调试高德地图正常 打包apk高德地图就不加载-CSDN博客 问题: 目前两个项目,一个项目是从另一个项目里面分割出来的一整套…

对MODNet 主干网络 MobileNetV2的剪枝探索

目录 1 引言 1.1 MODNet 原理 1.2 MODNet 模型分析 2 MobileNetV2 剪枝 2.1 剪枝过程 2.2 剪枝结果 2.2.1 网络结构 2.2.2 推理时延 2.3 实验结论 3 模型嵌入 3.1 模型保存与加载 法一:保存整个模型 法二:仅保存模型的参数 小试牛刀 小结…

【Android Gradle 插件】Gradle 基础配置 ④ ( Gradle Wrapper 配置作用 | Gradle 下载的依赖库存放位置 )

一、Gradle Wrapper 配置作用 gradle wrapperdistributionBaseGRADLE_USER_HOME distributionPathwrapper/dists distributionUrlhttps\://services.gradle.org/distributions/gradle-6.7.1-bin.zip zipStoreBaseGRADLE_USER_HOME zipStorePathwrapper/distsGradle Wrapper 配…

〔保姆级教学〕2024华数杯国际赛B题完整参考论文22页+四小问matlab代码+数据集+可视化高清图表

光伏发电 一、问题分析(完整资料在文末) 问题一: 首先题目要求得到电能行业与经济状况、居民消费水平、城市化率和市场化程度等因素的关系,并对供电量进行预测。其中,电能采用供电量数据、经济采用GDP数据&#xff…

C++(Qt)软件调试---静态分析工具clang-tidy(18)

C(Qt)软件调试—静态分析工具clang-tidy(18) 文章目录 C(Qt)软件调试---静态分析工具clang-tidy(18)1、概述2、clang-tidy基本用法3、目前已有检查项4、Qt Creator中安装clang-tidy5、Qt Creator中使用clang-tidy6、Clang-Tidy配置…

摄影后期照片编辑 -- Lightroom Classic 2024

Lightroom Classic 2024是一款强大的数字照片管理和编辑软件,适合摄影师、图片编辑或者任何需要处理大量照片的人使用。 首先,Lightroom Classic 2024具有直观且易于使用的界面,使得用户可以快速浏览、组织和编辑照片。它支持各种RAW格式的照…

【网络】传输层TCP协议

目录 一、概述 2.1 运输层的作用引出 2.2 传输控制协议TCP 简介 2.3 TCP最主要的特点 2.4 TCP连接 二、TCP报文段的首部格式 三、TCP的运输连接管理 3.1 TCP的连接建立(三次握手) 3.2 为什么是三次握手? 3.3 为何两次握手不可以呢? 3.4 TCP的…

附1:k8s服务器初始化

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 关联文章: 《RKE快速搭建离线k8s集群并用rancher管理界面》 1.创建普通用户sre并赋予sudo权限 # adduser sre # ec…

vue封装接口

目录 封装接口前缀 配置逻辑 接口存放文件 配置代理 获取数据方法 封装接口前缀 config.js const serverConfig {baseURL: "https://xxx.xxxxxxxx.com/api", // 请求基础地址,可根据环境自定义useTokenAuthorization: false, // 是否开启 token 认证};export …

JoyRL Actor-Critic算法

策略梯度算法的缺点 这里策略梯度算法特指蒙特卡洛策略梯度算法,即 REINFORCE 算法。 相比于 DQN 之类的基于价值的算法,策略梯度算法有以下优点。 适配连续动作空间。在将策略函数设计的时候我们已经展开过,这里不再赘述。适配随机策略。由…

你必须了解的羊奶知识,一文悉数为你揭晓

你必须了解的羊奶知识,一文悉数为你揭晓 羊奶,作为一种营养丰富的乳制品,近年来备受关注。许多人选择羊奶作为替代牛奶的选择,因为它被认为更易消化,并且具有许多健康益处。在本文中,小编羊大师将为大家介…

Mac 上网易云音乐 ncm 格式文件如何转换为 mp3 音频文件?嗨格式转换器

hello朋友们大家好,最近想着怎么把网易云的歌保存到U盘,然后放到车上去听,然后辛辛苦苦搞了一宿,第二天拿到车上发现播放不了,根本就不认识 ncm 格式,我百度了一下,发现 ncm 是网易云的专用加密…

推荐一一款小众黑科技工具,低调使用建议收藏

wireshark是个啥就不多说了,非常流行的网络封包分析软件。 可以截取各种网络封包,显示网络封包的详细信息。 软件功能十分强大,操作也不复杂。 很多小友都在后台问能不能出一期完整的抓包分析贴,今天给你们安排上了哈。 01 W…

Kafka(二)【文件存储机制 生产者】

目录 一、Kafka 文件存储机制 二、Kafka 生产者 1、生产者消息发送流程 1.1、发送原理 2、异步发送 API 2.1、普通异步发送 案例演示 2.2、带回调函数的异步发送 2.3、同步发送 API 3、生产者分区 3.1、分区的好处 3.2、生产者发送消息的分区策略 (1&am…

【Java数据结构 -- 队列:队列有关面试oj算法题】

队列、循环队列、用队列模拟栈、用栈模拟队列 1.队列1.1 什么是队列1.2 创建队列1.3 队列是否为空和获取队头元素 empty()peek()1.4 入队offer()1.5 出队(头删)poll() 2. 循环队列2.1 创建循环队列2.2 判断是否为空isEmpty()和满isFull()2.3 入队enQueue…

深入理解Linux中的动态库与静态库

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:I Wish My Mind Would Shut Up—Ivoris 0:21━━━━━━️💟──────── 2:04 🔄 ◀️ …

基于SpringBoot的手机商城

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

苏州渭塘镇应用无人机“智慧执法”

苏州渭塘镇应用无人机“智慧执法” 在今年以来,渭塘镇综合行政执法局采用了“空中地面”的立体监督模式,以实现对“互联网执法”工作的深入推进。在这一模式下,无人机巡查作为技术手段得到广泛应用,而安全生产监管信息系统和综合…

MySQL-函数-数值函数

常见的数值函数 案例