当前位置: 首页 > news >正文

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

作者:来自 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.lryc.cn/news/286080.html

相关文章:

  • Java算法 leetcode简单刷题记录4
  • opencv#27模板匹配
  • 【论文阅读笔记】Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation
  • IS-IS:01 ISIS基本配置
  • 基于极限学习机的曲线分类,基于极限学习机的光谱分类,基于极限学习机的分类预测
  • miniconda安装
  • PHP判断访客是否手机端(移动端浏览器)访问的方法总结
  • vscode无法自动补全
  • 深度学习记录--指数加权平均
  • 如何生成图源二维码?
  • PowerShell install 一键部署grafana
  • 笨蛋学设计模式行为型模式-解释器模式【23】
  • SAP ABAP SUBMIT常用用法
  • GitLab备份与恢复测试(基于Docker)
  • android studio开发的一些问题
  • 辞职对于我来说,不可避免(10)
  • 【Java】--网络编程:基于TCP协议的网络通信
  • CMake+QT+大漠插件的桌面应用开发(QThread)
  • 【笔记】Helm-3 主题-9 Helm高级技术
  • YOLOv5改进 | 主干篇 | 华为GhostnetV1一种移动端的专用特征提取网络
  • 特斯拉FSD的神经网络(Tesla 2022 AI Day)
  • LLM自回归解码
  • #Uniapp:uni.request(OBJECT)
  • 旅游项目day14
  • 关于缓存 db redis local 取舍之道
  • imgaug库图像增强指南(33):塑造【云层】效果的视觉魔法
  • 树莓派ubuntu:CSI接口摄像头安装驱动程序及测试
  • Webpack5入门到原理6:处理图片资源
  • 大语言模型(LLM)有哪些?
  • 2 - 部署Redis集群架构