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

Elasticsearch:結(jié)合兩全其美:Elasticsearch 與 BM25 和 HNSW 的混合搜索

這篇具有很好參考價值的文章主要介紹了Elasticsearch:結(jié)合兩全其美:Elasticsearch 與 BM25 和 HNSW 的混合搜索。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Elasticsearch:結(jié)合兩全其美:Elasticsearch 與 BM25 和 HNSW 的混合搜索

就搜索算法而言,沒有萬能的解決方案。 不同的算法在不同的場景下效果更好,有時需要算法的組合才能達(dá)到最好的效果。 在 Elasticsearch 中,一種流行的組合搜索算法的方法是使用混合搜索,將用于文本搜索的 BM25 算法與用于最近鄰搜索的 HNSW 算法相結(jié)合。 在這篇博文中,我們將探討 Elasticsearch 中混合搜索的優(yōu)勢、挑戰(zhàn)和用例。

BM25 是一種廣泛用于文本搜索的算法,它根據(jù)查詢中每個詞的詞頻(TF)和逆向文檔頻率(IDF)計算分?jǐn)?shù)。 正如我們在之前的博文中看到的,HNSW 是一種用于近似最近鄰搜索的算法,它構(gòu)建了一個由互連節(jié)點組成的小世界圖。 通過結(jié)合這兩種算法,我們可以執(zhí)行結(jié)合兩者優(yōu)勢的混合搜索。

混合搜索的最大挑戰(zhàn)之一是平衡兩種算法的權(quán)重。 換句話說,我們需要決定在組合它們時給 BM25 分?jǐn)?shù)和給 HNSW 分?jǐn)?shù)多少權(quán)重。 這可能很棘手,因為最佳權(quán)重可能會因數(shù)據(jù)和特定搜索場景而異。

但是,如果操作得當(dāng),混合搜索可以顯著提高搜索準(zhǔn)確性和效率。 例如,在電子商務(wù)應(yīng)用程序中,混合搜索可用于將文本搜索與視覺搜索相結(jié)合,使用戶能夠找到與其文本和視覺查詢相匹配的產(chǎn)品。 在科學(xué)應(yīng)用中,混合搜索可用于將文本搜索與高維數(shù)據(jù)的相似性搜索相結(jié)合,使研究人員能夠根據(jù)文本內(nèi)容和數(shù)據(jù)找到相關(guān)文檔。

讓我們看一個例子,看看如何在 Elasticsearch 中實現(xiàn)混合搜索。 首先,我們需要使用包含 BM25 和 HNSW 相似性算法的映射來索引我們的數(shù)據(jù):

PUT byte-image-index
{
  "mappings": {
    "properties": {
      "byte-image-vector": {
        "type": "dense_vector",
        "element_type": "byte",
        "dims": 2,
        "index": true,
        "similarity": "cosine"
      },
      "title": {
        "type": "text"
      },
      "area": {
        "type": "keyword"
      }
    }
  }
}

在這里,我們定義了一個映射,其中包括用于 BM25 文本搜索的 title 字段和用于 HNSW 高維數(shù)據(jù)相似性搜索的 byte-image-vector 字段。我們索引一下數(shù)據(jù):

POST byte-image-index/_bulk?refresh=true
{ "index": { "_id": "1" } }
{ "byte-image-vector": [5, -20], "title": "moose family", "area": "Asia" }
{ "index": { "_id": "2" } }
{ "byte-image-vector": [8, -15], "title": "alpine lake", "area": "Europe" }
{ "index": { "_id": "3" } }
{ "byte-image-vector": [11, 23], "title": "full moon", "area": "Africa" }

接下來,我們可以使用文本和向量字段執(zhí)行搜索,如下所示:

POST byte-image-index/_search
{
  "query": {
    "match": {
      "title": {
        "query": "mountain lake",
        "boost": 0.5
      }
    }
  },
  "knn": {
    "field": "byte-image-vector",
    "query_vector": [6, 10],
    "k": 5,
    "num_candidates": 50,
    "boost": 0.5,
    "filter": {
      "term": {
        "area": "Asia"
      }
    }
  },
  "size": 10
}

此搜索查詢結(jié)合了 title 字段上的 match 查詢和 image-vector 字段上的 knn 查詢,使用了我們之前定義的混合相似性算法。 在此示例中,我們?yōu)?BM25 和 HNSW 使用了 0.9?和 0.1 的權(quán)重,但你可以嘗試使用不同的權(quán)重來找到適合你的數(shù)據(jù)和搜索場景的最佳平衡點。 總之,Elasticsearch 中的混合搜索是一種強大的技術(shù),可以結(jié)合不同搜索算法的優(yōu)勢,以實現(xiàn)更好的搜索準(zhǔn)確性和效率。 通過將用于文本搜索的 BM25 算法與用于最近鄰搜索的 HNSW 算法相結(jié)合,用戶可以在其搜索和分析應(yīng)用程序中利用這兩種算法的強大功能。 通過仔細(xì)調(diào)整兩種算法的權(quán)重,混合搜索可以成為從電子商務(wù)到科學(xué)研究等廣泛應(yīng)用的強大工具。

上述搜索結(jié)果為:

{
  "took": 10,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 3,
      "relation": "eq"
    },
    "max_score": 0.9070214,
    "hits": [
      {
        "_index": "byte-image-index",
        "_id": "2",
        "_score": 0.9070214,
        "_source": {
          "byte-image-vector": [
            8,
            -15
          ],
          "title": "alpine lake"
        }
      },
      {
        "_index": "byte-image-index",
        "_id": "3",
        "_score": 0.09977779,
        "_source": {
          "byte-image-vector": [
            11,
            23
          ],
          "title": "full moon"
        }
      },
      {
        "_index": "byte-image-index",
        "_id": "1",
        "_score": 0.014644662,
        "_source": {
          "byte-image-vector": [
            5,
            -20
          ],
          "title": "moose family"
        }
      }
    ]
  }
}

我們甚至可以針對 knn 搜索設(shè)置一下 filter 以限制他的搜索范圍,比如:

POST byte-image-index/_search
{
  "query": {
    "match": {
      "title": {
        "query": "mountain lake",
        "boost": 0.5
      }
    }
  },
  "knn": {
    "field": "byte-image-vector",
    "query_vector": [6, 10],
    "k": 5,
    "num_candidates": 50,
    "boost": 0.5,
    "filter": {
      "term": {
        "area": "Asia"
      }
    }
  },
  "size": 10
}

在上面,我們使用 filter 來針對 area 來進(jìn)行過濾,從而加快搜索的速度。上面返回的結(jié)果為:文章來源地址http://www.zghlxwxcb.cn/news/detail-459585.html

{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 2,
      "relation": "eq"
    },
    "max_score": 0.49041456,
    "hits": [
      {
        "_index": "byte-image-index",
        "_id": "2",
        "_score": 0.49041456,
        "_source": {
          "byte-image-vector": [
            8,
            -15
          ],
          "title": "alpine lake",
          "area": "Europe"
        }
      },
      {
        "_index": "byte-image-index",
        "_id": "1",
        "_score": 0.07322331,
        "_source": {
          "byte-image-vector": [
            5,
            -20
          ],
          "title": "moose family",
          "area": "Asia"
        }
      }
    ]
  }
}

到了這里,關(guān)于Elasticsearch:結(jié)合兩全其美:Elasticsearch 與 BM25 和 HNSW 的混合搜索的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 使用ElasticSearch完成大模型+本地知識庫:BM25+Embedding模型+Learned Sparse Encoder 新特性

    使用ElasticSearch完成大模型+本地知識庫:BM25+Embedding模型+Learned Sparse Encoder 新特性

    本文指出,將BM25,向量檢索Embedding模型后近似KNN相結(jié)合,可以讓搜索引擎既能理解用戶查詢的字面意義,又能捕捉到查詢的深層次語義,從而提供更全面、更精確的搜索結(jié)果。這種混合方法在現(xiàn)代搜索引擎中越來越普遍,因為它結(jié)合了傳統(tǒng)搜索的精確性和基于AI的搜索的語義

    2024年02月03日
    瀏覽(83)
  • BM25檢索算法 python

    BM25檢索算法 python

    BM25(Best Matching 25)是一種經(jīng)典的信息檢索算法,是基于 TF-IDF算法的改進(jìn)版本,旨在解決、TF-IDF算法的一些不足之處。其被廣泛應(yīng)用于信息檢索領(lǐng)域的排名函數(shù),用于估計文檔D與用戶查詢Q之間的相關(guān)性。它是一種基于概率檢索框架的改進(jìn),特別是在處理長文檔和短查詢時表

    2024年04月27日
    瀏覽(16)
  • 集成多元算法,打造高效字面文本相似度計算與匹配搜索解決方案,助力文本匹配冷啟動[BM25、詞向量、SimHash、Tfidf、SequenceMatcher]

    集成多元算法,打造高效字面文本相似度計算與匹配搜索解決方案,助力文本匹配冷啟動[BM25、詞向量、SimHash、Tfidf、SequenceMatcher]

    搜索推薦系統(tǒng)專欄簡介:搜索推薦全流程講解(召回粗排精排重排混排)、系統(tǒng)架構(gòu)、常見問題、算法項目實戰(zhàn)總結(jié)、技術(shù)細(xì)節(jié)以及項目實戰(zhàn)(含碼源) 專欄詳細(xì)介紹:搜索推薦系統(tǒng)專欄簡介:搜索推薦全流程講解(召回粗排精排重排混排)、系統(tǒng)架構(gòu)、常見問題、算法項目

    2024年02月05日
    瀏覽(30)
  • 1、pytorch分布式數(shù)據(jù)訓(xùn)練結(jié)合學(xué)習(xí)率周期及混合精度

    正如標(biāo)題所寫,我們正常的普通訓(xùn)練都是單機單卡或單機多卡。而往往一個高精度的模型需要訓(xùn)練時間很長,所以DDP分布式數(shù)據(jù)并行和混合精度可以加速模型訓(xùn)練?;炀梢栽龃骲atch size. 如下提供示例代碼,經(jīng)過官網(wǎng)查閱驗證的。原始代碼由百度文心一言提供。 問題:pytor

    2024年02月07日
    瀏覽(28)
  • 【W(wǎng)SN覆蓋】基于麻雀搜索算法的三維混合無線傳感器網(wǎng)絡(luò)覆蓋優(yōu)化 三維WSN覆蓋空洞修復(fù)【Matlab代碼#25】

    【W(wǎng)SN覆蓋】基于麻雀搜索算法的三維混合無線傳感器網(wǎng)絡(luò)覆蓋優(yōu)化 三維WSN覆蓋空洞修復(fù)【Matlab代碼#25】

    由于節(jié)點隨機拋灑,而傳感器節(jié)點的分布情況會影響網(wǎng)絡(luò)覆蓋率。在三維覆蓋區(qū)域中,傳感器節(jié)點的覆蓋區(qū)域是某一半徑確定的球。在三維監(jiān)測區(qū)域中隨機拋灑 N N N 個傳感器節(jié)點,形成節(jié)點集合 ( s 1 , s 2 , s 3 , . . . , s N ) (s_{1},s_{2},s_{3},...,s_{N}) ( s 1 ? , s 2 ? , s 3 ? , ... , s

    2024年02月06日
    瀏覽(21)
  • 深度學(xué)習(xí) Day25——J4 ResNet與DenseNet結(jié)合探索(DPN)

    深度學(xué)習(xí) Day25——J4 ResNet與DenseNet結(jié)合探索(DPN)

    ?? 本文為??365天深度學(xué)習(xí)訓(xùn)練營 中的學(xué)習(xí)記錄博客 ?? 原作者:K同學(xué)啊 | 接輔導(dǎo)、項目定制 ?? 文章來源:K同學(xué)的學(xué)習(xí)圈子 : pytorch實現(xiàn)DenseNet算法,tensorflow實現(xiàn)DenseNet算法,DenseNet算法詳解 電腦系統(tǒng):Windows 11 語言環(huán)境:python 3.8.6 編譯器:pycharm2020.2.3 深度學(xué)習(xí)環(huán)

    2024年01月23日
    瀏覽(21)
  • 速度和可靠性是可以兩全其美的

    速度和可靠性是可以兩全其美的

    當(dāng)涉及到在線服務(wù)時,正常運行時間是至關(guān)重要的,但這并不是唯一需要考慮的事情。想象一下,經(jīng)營一家網(wǎng)上商店——讓你的網(wǎng)站99.9%的時間都可用聽起來不錯,但如果0.1%的停機時間發(fā)生在假日購物季呢?這可能意味著失去大筆銷售額。如果你的大多數(shù)客戶只對少數(shù)受歡迎

    2023年04月24日
    瀏覽(63)
  • Elasticsearch:混合搜索是 GenAI 應(yīng)用的未來

    Elasticsearch:混合搜索是 GenAI 應(yīng)用的未來

    在這個競爭激烈的人工智能時代,自動化和數(shù)據(jù)為王。 從龐大的存儲庫中有效地自動化搜索和檢索信息的過程的能力變得至關(guān)重要。 隨著技術(shù)的進(jìn)步,信息檢索方法也在不斷進(jìn)步,從而導(dǎo)致了各種搜索機制的發(fā)展。 隨著生成式人工智能模型成為吸引力的中心,應(yīng)用程序需要

    2024年02月22日
    瀏覽(14)
  • Elasticsearch 混合檢索優(yōu)化大模型 RAG 任務(wù)

    Elasticsearch 混合檢索優(yōu)化大模型 RAG 任務(wù)

    Elastic 社區(qū)在自然語言處理上面做的很不錯官方博客更新速度也很快,現(xiàn)階段大模型的應(yīng)用場景主要在 Rag 和 Agent 上,國內(nèi) Rag(Retrieval-Augmented Generation 檢索增強生成) 的尤其多,而搜索對于 Elasticsearch 來說是強項特別是 8.9 之后的版本提供了 ESRE 模塊(集成了高級相關(guān)性排序

    2024年04月25日
    瀏覽(26)
  • 通過 Elasticsearch 和 Go 使用混合搜索進(jìn)行地鼠狩獵

    通過 Elasticsearch 和 Go 使用混合搜索進(jìn)行地鼠狩獵

    作者:CARLY RICHMOND,LAURENT SAINT-FéLIX 就像動物和編程語言一樣,搜索也經(jīng)歷了不同實踐的演變,很難在其中做出選擇。 在本系列的最后一篇博客中,Carly Richmond 和 Laurent Saint-Félix 將搜索和向量搜索結(jié)合起來,使用 Go 客戶端在 Elasticsearch 中尋找地鼠(gopher)。 今天構(gòu)建

    2024年02月05日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包