期待一下elasticsearch還未發布的8.12版本,由lucene底層帶來的大幅度提升

?

? ?現在是北京時間23年12月10日。當前es最新版本還是es8.11版本。我們可以期待一下不久的將來,es的8.12版本看到大幅度的檢索性能提升。受益于 Lucene 9.9版本,內核帶來的大幅提升!

? ? 此次向量檢索利用底層指令fma會性能提升5%。并且還提供了向量點積的能力。重點較大幅度提升了多關鍵詞匹配topK的搜索場景。

核心提升兩個場景

  1. 一次檢索中。很多個檢索關鍵詞(例如(term_1 OR term_2 OR ... OR term_n)),之間and或者or操作的檢索在topK召回的時候大幅提速。
  2. 向量線索提速。

詳細提升細節

? ? ? ?以下兩點,是提升搜索性能的細節。其主要思路是,跳過更多的數據。(這里就不翻譯提取來。害怕誤人子弟。大家想了解為什么,一定要看下邊的原文)

  • 使用許多和/或高頻術語(注釋 FK)為 top-k 查詢帶來加速
  • 使用 block-max MAXSCORE 進行更多跳躍(注釋 FU)

? ? ? ? 以下兩點,是向量檢索的提升細節

  • 使用 SIMD 指令加速矢量搜索
  • FMA 式向量相似度計算

基準測試結果對比

以下是基準測試在 Lucene 9.6(2023 年 5 月)和 Lucene 9.9(2023 年 12 月)之間觀察到的一些加速:

  • AndHighHigh:快 35%
  • AndHighMed:快 15%
  • OrHighHigh:快 60%
  • OrHighMed:快 38%
  • CountAndHighHigh:快 15%
  • CountAndHighMed:快 11%
  • CountOrHighHigh:快 145%
  • CountOrHighMed:快 155%
  • TermDTSort:快 24%
  • TermTitleSort:快 290%(不是拼寫錯誤!)
  • TermMonthSort:快 7%
  • DayOfYearSort:快 25%
  • 矢量搜索:速度提高 5%

這里可以看到lucene所有的基準測試結果:

Lucene nightly benchmarks

參考es官方博客:Apache Lucene 9.9, the fastest Lucene release ever — Elastic Search Labs

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212523.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212523.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212523.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在Spring Cloud使用Hystrix核心組件,并注冊到Eureka注冊中心去

其實吧,寫Spring Cloud系列,我有時候覺得也挺難受的,因為Spring Cloud的微服務啟動都需要一個一個來,并且在IDea中也需要占用比較大的內存,并且我本來可以一篇寫完5大核心組件的,但是我卻分了三篇&#xff…

簡單的圖像分類任務全流程示例(內含代碼)

以下是一個簡單的示例,展示了如何使用 PyTorch 處理自定義圖像分類數據集: import torch import torch.nn as nn import torch.optim as optim import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoad…

erlang實現用ets做一級緩存

一、Erlang中的ETS表和DETS表 ETS表是Erlang中的一種數據結構,它允許我們在內存中存儲數據。ETS表有許多用途,其中包括作為緩存的一種實現方式。ETS表的特點是它們在內存中以表的形式存儲數據,這使得訪問和操作數據非常快。 DETS表是Erlang…

【求職】外企德科-網易游戲測試面試記錄

前面的話:本來沒想寫,但是竟然收到了一面通過的通知,那就來回顧一下一面,為終面做做準備。 這次面試基本沒有做什么準備,本來也就是抱著試一試的心態做的筆試,結果筆試通過了,由于筆試的內容很…

LINUX-ROS集成安裝MQTT庫步驟注意事項

環境信息 roottitan-ubuntu1:/home/mogo/data/jp/paho.mqtt.cpp# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.5 LTS Release: 18.04 Codename: bionic 步驟 安裝doxygen sudo apt install doxygen 構…

Fcopy: 基于Coke實現內網大文件分發

在工作中,我曾與小伙伴討論過這樣一個實際問題:數據制作流程產生了一份需要上線的文件,而線上有數十臺甚至上百臺機器,有什么樸素的辦法以盡可能快的速度將文件分發到指定的機器上嗎?根據作者已有的知識,分…

普冉(PUYA)單片機開發筆記(5): 配置定時器PWM輸出

概述 定時器的輸出通道作為 PWM 驅動是 MCU 的常用功能。 PY32F003 有一個高級定時器 TIM1 和一個通用定時器 TIM3,這兩個定時器都可以驅動4個輸出通道。現在我們就利用 TIM1 的某一個通道實現可控占空比的 PWM 輸出。 原理簡介 看數據手冊,簡單摘錄…

激活函數數學詳解以及應用場景解釋

文章目錄 激活函數1. Sigmoid 激活函數例子及推導過程代碼 2. ReLU 激活函數例子及推導過程 3. Tanh 激活函數例子及推導過程代碼 4. Softmax 激活函數例子及推導過程代碼 CNN 中的卷積層工作原理卷積計算過程卷積后的輸出及 ReLU 應用 激活函數 激活函數在神經網絡中扮演著至…

IPSec 協議

在 TCP/IP 協議中,對 IP 數據包沒有提供任何安全保護,攻擊者可以通過網絡嗅探、 IP 欺騙、連接截獲等方法來攻擊正常的 TCP/IP 通信。因此,通信過程中會存在以下危險:數據并非來自合法的發送者、數據在傳輸過程中被非法篡改、信息…

前端知識(十七)——入口函數和特定函數的區別

入口函數和特定函數是編程中常見的兩種函數類型,它們在功能和使用場景上有所不同。下面我將通過Python代碼示例來解釋它們的區別。 1.入口函數:入口函數通常是一個程序或模塊的起始點,它負責接收用戶輸入或外部數據,并啟動程序的…

DM8/達夢 數據庫管理員使用手冊詳解

1.1DM客戶端存放位置 Windows:DM數據庫安裝目錄中tool文件夾和bin文件夾中。 Linux:DM數據庫安裝目錄中tool目錄和bin目錄中。 1.2DM數據庫配置助手 1.2.1Windows創建數據庫 打開數據庫配置助手dbca 點擊創建數據庫實例 選擇一般用途 瀏覽選擇數據庫…

圖中的最長環

說在前面 🎈不知道大家對于算法的學習是一個怎樣的心態呢?為了面試還是因為興趣?不管是處于什么原因,算法學習需要持續保持,今天讓我們一起來看看這一道題目————圖中的最長環,圖論題目中比較常見的環路…

vite+TypeScript+vue3+router4+Pinia+ElmPlus+axios+mock項目基本配置

1.viteTSVue3 npm create vite Project name:... yourProjectName Select a framework:>>Vue Select a variant:>>Typescrit2. 修改vite基本配置 配置 Vite {#configuring-vite} | Vite中文網 (vitejs.cn) vite.config.ts import { defineConfig } from vite …

C語言筆試例題_指針專練30題(附答案解析)

C語言筆試例題_指針專練30題(附答案解析) 指針一直是C語言的靈魂所在,是掌握C語言的必經之路,收集30道C語言指針題目分享給大家,測試環境位64位ubuntu18.04環境,如有錯誤,懇請指出,文明討論!&am…

基于SSM+JSP網上訂餐管理系統(Java畢業設計)

大家好,我是DeBug,很高興你能來閱讀!作為一名熱愛編程的程序員,我希望通過這些教學筆記與大家分享我的編程經驗和知識。在這里,我將會結合實際項目經驗,分享編程技巧、最佳實踐以及解決問題的方法。無論你是…

Flask筆記三之連接使用數據庫

本文首發于公眾號:Hunter后端 原文鏈接:Flask筆記三之連接使用數據庫 這一節介紹 Flask 與數據庫的連接,以及接口里查詢數據的操作。 這里使用的是 SQLAlchemy pymysql 實現與數據庫的連接,SQLAlchemy 的詳細介紹見之前的筆記有…

藍橋杯2021年5月青少組Python程序設計國賽真題

30 個人在一條船上,超載,需要 15 人下船于是人們排成一隊,排隊的位置即為他們的編號。報數,從1開始,數到9的人下船。如此循環,直到船上僅剩15 人為止,問都有哪些編號的人下船了呢? 2】判斷101-200之間有多少個素數,并輸出所有素數…

Maven上傳Jar到Nexus遠程倉庫的兩種方式

Maven上傳Jar到Nexus遠程倉庫的兩種方式 文章目錄 前言通過mvn clean deploy指令上傳第一步 配置maven的setting.xml文件第二步 配置pom文件第三步 執行打包指令 手動上傳 jar到遠程倉庫第一步 配置setting文件第二步 執行上傳命令 前言 各個公司在開發項目時,一般…

Linux C/C++并發編程實戰(8)CAS機制的ABA問題

文章目錄 無鎖隊列中的ABA問題ABA問題解決方案 ABA問題:CAS在操作的時候會檢查變量的值是否被更改過,如果沒有則更新值,但是帶來一個問題,最開始的值是A,接著變成B,最后又變成了A。經過檢查這個值確實沒有修…

Leetcode每日一題

https://leetcode.cn/problems/binary-tree-preorder-traversal/ 這道題目需要我們自行進行創建一個數組,題目也給出我們需要自己malloc一個數組來存放,這樣能達到我們遍歷的效果,我們來看看他的接口函數給的是什么。 可以看到的是這個接口函…