国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?

這篇具有很好參考價值的文章主要介紹了Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、企業(yè)級實戰(zhàn)問題

向量組合條件查詢,報 [vector] malformed query, expected [END_OBJECT] but found [FIELD_NAME] 錯誤,

向量查詢是不支持復合條件查詢嗎?

GET?/my_index/_search
{
??"size":2,
??"_source":?true,?
??"query":?{
????"vector":?{
??????"my_vector":?{
????????"vector":?[1,?1],
????????"topk":2
??????}
????},
????"bool":?{
??????"must":?[
????????{
??????????"match":?{
????????????"my_label":"red"
??????????}
????????}
??????]
????}
??}
}

——問題來自:死磕 Elasticsearch 知識星球

https://t.zsxq.com/18skX0ZS6

類似問題在社群里被問到 2 次以上了!

向量搜索熱度不減,所以我們非常有必要將向量搜索和普通搜索結合方式給大家講清楚。

換句話說,向量搜索和普通搜索的組合檢索才是 Elasticsearch 作為向量數據庫有別于其他新興向量數據庫的發(fā)力點所在。

更多向量檢索的先驗知識,推薦大家閱讀:

  1. 干貨 | 詳述 Elasticsearch 向量檢索發(fā)展史

  2. 高維向量搜索:在 Elasticsearch 8.X 中利用 dense_vector 的實戰(zhàn)探索

  3. Elasticsearch:普通檢索和向量檢索的異同?

  4. Elasticsearch 8.X “圖搜圖”實戰(zhàn)

2、一邊實戰(zhàn),一邊驗證

如下所有驗證都是在 Elasticsearch 8.11.0 集群環(huán)境下完成的。

2.1 步驟 1: 創(chuàng)建索引

首先,通過PUT image-index 請求,創(chuàng)建了一個名為 image-index 的索引,并定義了其映射。

這個映射指定了索引中文檔將包含的字段及其類型:

  • image-vector:一個類型為dense_vector的字段,用于存儲 ** 3 維 ** 向量數據。

  • title:一個text類型的字段,用于存儲圖像的標題。

  • file-type:一個keyword類型的字段,用于存儲文件類型,如"jpeg"、"png"、"gif"等。

  • my_label:另一個text類型的字段,可以用于存儲任何標簽信息,如顏色標簽"red"、"blue"等。

PUT?image-index
{
??"mappings":?{
????"properties":?{
??????"image-vector":?{
????????"type":?"dense_vector",
????????"dims":?3
??????},
??????"title":?{
????????"type":?"text"
??????},
??????"file-type":?{
????????"type":?"keyword"
??????},
??????"my_label":?{
????????"type":?"text"
??????}
????}
??}
}

2.2 步驟 2: 批量插入數據

使用 POST /image-index/_bulk 請求,批量插入了多個文檔到 image-index 索引。

每個文檔包含了一個向量、標題、文件類型和標簽。

這些文檔反映了不同的圖像信息,每個圖像都有自己的向量表示、標題、文件類型和顏色標簽。

POST?image-index/_bulk
{?"index":?{}?}
{?"image-vector":?[-5,?9,?-12],?"title":?"Image?A",?"file-type":?"jpeg",?"my_label":?"red"?}
{?"index":?{}?}
{?"image-vector":?[10,?-2,?3],?"title":?"Image?B",?"file-type":?"png",?"my_label":?"blue"?}
{?"index":?{}?}
{?"image-vector":?[4,?0,?-1],?"title":?"Image?C",?"file-type":?"gif",?"my_label":?"red"?}

2.3 步驟3:基于已有認知嘗試組合檢索

knn 檢索咱講過,翻一下官方文檔即可。

https://www.elastic.co/guide/en/elasticsearch/reference/current/knn-search.html

官方示例如下:

POST?image-index/_search
{
??"knn":?{
????"field":?"image-vector",
????"query_vector":?[-5,?9,?-12],
????"k":?10,
????"num_candidates":?100
??},
??"fields":?[?"title",?"file-type"?]
}

正好和我們的示例是契合的,我們先執(zhí)行一下,如下圖所示,全體數據均可召回。

Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?,elasticsearch,jenkins,大數據,搜索引擎,全文檢索

接下來,嘗試再加上普通檢索。

  • 并列組合

  • 大 BOOL 組合寫

  • 組合到內部 咱們挨個試試:

2.3.1 嘗試方式一:并列組合檢索

可以執(zhí)行,可以召回結果數據。

但結果沒有達到預期,我們過濾的 red ,召回結果里有 blue。如下圖所示。

結論:并列組合檢索不可行。

Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?,elasticsearch,jenkins,大數據,搜索引擎,全文檢索
2.3.2 方式二:大 BOOL 組合寫

按照常規(guī)邏輯的 bool 組合檢索,結果發(fā)現:并不支持!

Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?,elasticsearch,jenkins,大數據,搜索引擎,全文檢索
2.3.3 方式三:組合到內部

直接將過濾檢索組合到 knn 內部,會報錯,語法并不支持!

Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?,elasticsearch,jenkins,大數據,搜索引擎,全文檢索

那,怎么辦?

不能再猜了,看官方文檔如何支持的?

https://www.elastic.co/guide/en/elasticsearch/reference/current/knn-search.html

官方文檔給出兩份答案。

2.3.4 官方答案一:Filtered kNN search

Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?,elasticsearch,jenkins,大數據,搜索引擎,全文檢索

如下實現語法的核心:knn 向量檢索的里面加了 filter 過濾。

POST?image-index/_search
{
??"knn":?{
????"field":?"image-vector",
????"query_vector":?[
??????54,
??????10,
??????-2
????],
????"k":?5,
????"num_candidates":?50,
????"filter":?{
??????"match":?{
????????"my_label":?"red"
??????}
????}
??},
??"fields":?[
????"title",
????"file-type",
????"my_label"
??],
??"_source":?false
}
Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?,elasticsearch,jenkins,大數據,搜索引擎,全文檢索

針對前面提到問題的解決方案,這是咱們推薦的唯一正確的檢索方式。

2.3.5 官方答案二:hybrid ?search 混合檢索

這個方式,就是咱們前面驗證過的并列組合檢索方式。結論和之前一致,并沒有達到預期。

POST?image-index/_search
{
??"query":?{
????"match":?{
??????"my_label":?{
????????"query":?"red"
??????}
????}
??},
??"knn":?{
????"field":?"image-vector",
????"query_vector":?[
??????54,
??????10,
??????-2
????],
????"k":?5,
????"num_candidates":?50,
????"boost":?0.1
??},
??"size":?10
}
Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?,elasticsearch,jenkins,大數據,搜索引擎,全文檢索

3、小結

查詢方式千萬種,我們需要敲定適合自己業(yè)務場景的方式。

基于已有的常識組合檢索是一種方式,更快的方式是結合官方文檔探究。

我們既定認為的檢索方式,不見得是官方推薦的方式。

官方推薦的:Filtered kNN search 查詢結合了基于內容的過濾和基于向量的搜索,旨在找出既符合文本查詢條件(如標簽為"red")又在向量空間中與給定查詢向量最接近的文檔。

這樣的查詢在處理如圖像、文檔或音頻等多媒體內容時特別有用,其中內容可以通過向量(例如通過機器學習模型生成的嵌入)和元數據(如標簽、標題或類型)來描述。

Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?,elasticsearch,jenkins,大數據,搜索引擎,全文檢索

通過這種方式,我們可以高效地找到既滿足特定元數據條件又在內容上與給定示例相似的項目,這對于構建推薦系統(tǒng)、圖像搜索引擎或其他需要結合內容和上下文信息進行精準檢索的應用場景非常有價值。

此處后續(xù)版本可能有變化,更多細節(jié),以最新版本的官方文檔為準。


7 年+積累、 Elastic 創(chuàng)始人Shay Banon 等 15 位專家推薦的 Elasticsearch 8.X新書已上線

Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?,elasticsearch,jenkins,大數據,搜索引擎,全文檢索

更短時間更快習得更多干貨!

和全球?近2000+?Elastic 愛好者一起精進!

elastic6.cn——ElasticStack進階助手

Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?,elasticsearch,jenkins,大數據,搜索引擎,全文檢索

比同事搶先一步學習進階干貨!文章來源地址http://www.zghlxwxcb.cn/news/detail-847710.html

到了這里,關于Elasticsearch 8.X 向量檢索和普通檢索能否實現組合檢索?如何實現?的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Elasticsearch向量檢索的演進與變革:從基礎到應用

    Elasticsearch向量檢索的演進與變革:從基礎到應用

    向量檢索已經成為現代搜索和推薦系統(tǒng)的核心組件。 通過將復雜的對象(例如文本、圖像或聲音)轉換為數值向量,并在多維空間中進行相似性搜索,它能夠實現高效的查詢匹配和推薦。 Elasticsearch 作為一款流行的開源搜索引擎,其在向量檢索方面的發(fā)展也一直備受關注。本

    2024年02月06日
    瀏覽(22)
  • ElasticSearch中使用bge-large-zh-v1.5進行向量檢索(一)

    ElasticSearch中使用bge-large-zh-v1.5進行向量檢索(一)

    系統(tǒng):MacOS 14.3.1 ElasticSearch:8.13.2 Kibana:8.13.2 BGE是一個常見的文本轉向量的模型,在很多大模型RAG應用中常常能見到,但是ElasticSearch中默認沒有。BGE模型有很多版本,本次采用的是bge-large-zh-v1.5。下載地址: HuggingFace:https://huggingface.co/BAAI/bge-large-zh-v1.5 Modelscope:魔搭社區(qū)

    2024年04月16日
    瀏覽(23)
  • 一個線上問題引發(fā)的思考——Elasticsearch 8.X 如何實現更精準的檢索?

    一個線上問題引發(fā)的思考——Elasticsearch 8.X 如何實現更精準的檢索?

    ——問題來自:死磕Elasticsearch 知識星球微信群 這個問題涉及到業(yè)務細節(jié),至今沒有定論。不過,該問題引發(fā)了我的思考。 我們使用 Elasticsearch 到底用來做什么? 除了 Elasticsearch 早已不是10年前因“菜譜”而火出技術圈的搜索引擎組件,它早已不是“單兵作戰(zhàn)”,而是 ELKB

    2023年04月08日
    瀏覽(12)
  • 技術解密:普通位置向量集如何提高語音識別準確性

    語音識別技術是人工智能領域的一個關鍵技術,它可以將人類的語音信號轉換為文本信息,從而實現自然語言與計算機之間的溝通。隨著語音助手、語音控制等應用的廣泛使用,語音識別技術的準確性和實時性已經成為了關鍵的研究熱點。 在過去的幾年里,語音識別技術的主

    2024年02月20日
    瀏覽(22)
  • 向量數據庫入坑:傳統(tǒng)文本檢索方式的降維打擊,使用 Faiss 實現向量語義檢索

    在上一篇文章《聊聊來自元宇宙大廠 Meta 的相似度檢索技術 Faiss》中,我們有聊到如何快速入門向量檢索技術,借助 Meta AI(Facebook Research)出品的 faiss 實現“最基礎的文本內容相似度檢索工具”,初步接觸到了“語義檢索”這種對于傳統(tǒng)文本檢索方式具備“降維打擊”的新

    2024年02月16日
    瀏覽(96)
  • 向量數據庫:usearch的簡單使用+實現圖片檢索應用

    向量數據庫:usearch的簡單使用+實現圖片檢索應用

    usearch是快速開源搜索和聚類引擎×,用于C++、C、Python、JavaScript、Rust、Java、Objective-C、Swift、C#、GoLang和Wolfram ??中的向量和??字符串× 一個簡單的例子(注:本例子在運行時向index中不斷添加項目,并將最后的index持久化為一個文件,在運行時由于添加項目內存占用會不斷增

    2024年02月02日
    瀏覽(98)
  • Spring AI - 使用向量數據庫實現檢索式AI對話

    Spring AI - 使用向量數據庫實現檢索式AI對話

    ?Spring AI 并不僅限于針對大語言模型對話API進行了統(tǒng)一封裝,它還可以通過簡單的方式實現LangChain的一些功能。本篇將帶領讀者實現一個簡單的檢索式AI對話接口。 ?在一些場景下,我們想讓AI根據我們提供的數據進行回復。因為對話有最大Token的限制,因此很多場景下我們

    2024年04月14日
    瀏覽(94)
  • 使用Spark ALS模型 + Faiss向量檢索實現用戶擴量實例

    1、通過ALS模型實現用戶/商品Embedding的效果,獲得其向量表示 準備訓練數據, M = (U , I, R)?即 用戶集U、商品集I、及評分數據R。 (1)商品集I的選擇:可以根據業(yè)務目標確定商品候選集,比如TopK熱度召回、或者流行度不高但在業(yè)務用戶中區(qū)分度比較高的商品集等。個人建議量

    2024年02月13日
    瀏覽(20)
  • OLAP引擎也能實現高性能向量檢索,據說QPS高于milvus!

    更多技術交流、求職機會,歡迎關注字節(jié)跳動數據平臺微信公眾號,回復【1】進入官方交流群 隨著LLM技術應用及落地,數據庫需要提高向量分析以及AI支持能力,向量數據庫及向量檢索等能力“異軍突起”,迎來業(yè)界持續(xù)不斷關注。簡單來說,向量檢索技術以及向量數據庫能

    2024年01月16日
    瀏覽(23)
  • Elasticsearch 如何做到快速檢索 - 倒排索引的秘密

    Elasticsearch 如何做到快速檢索 - 倒排索引的秘密

    這里我們就引出了一個概念,也是我們今天的要剖析的重點 -?倒排索引。也是 ES 的核心知識點。 如果你了解 ES 應該知道,ES 可以說是對 Lucene 的一個封裝,里面關于倒排索引的實現就是通過 lucene 這個 jar 包提供的 API 實現的,所以下面講的關于倒排索引的內容實際上都是

    2023年04月08日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包