全部產品
Search
文件中心

OpenSearch:向量檢索

更新時間:Jul 13, 2024

向量檢索介紹

為了滿足更多元化、更複雜的業務情境,OpenSearch推出向量檢索功能,在特定的業務情境下(特別是教育搜題情境、圖片搜尋情境),可以結合多路搜尋功能,提升搜尋結果的準確率。下面將介紹向量索引的文法說明注意事項

文法說明

query = vector_index:'向量'

樣本:查詢64維的向量索引
vector: '0.377796,-0.958450,0.409853,-0.238177,-1.293826,0.356797,-0.295727,0.847301,-1.220337,0.148032,-1.128458,0.903187,0.509352,0.293686,-1.005852,-0.488839,0.888227,-0.555556,-0.658025,0.267552,-0.567601,0.003045,0.591734,-0.515983,-1.316453,-1.462450,0.091946,1.554954,0.384802,0.720498,0.144338,1.217826,0.724039,0.044212,0.571332,-1.425430,0.618965,0.481887,-1.617787,1.505416,-0.683652,1.030900,0.562021,0.162437,0.816546,0.112229,-0.739288,-0.342643,-0.199292,0.508368,-1.384887,-1.842170,0.952622,-1.699499,0.199430,-0.232464,-0.273227,-0.383696,-0.511302,0.005458,1.873572,-0.926169,-0.417587,-0.660156'

使用樣本

設定最低分閾值

功能說明:控制向量分值低於或高於某個閾值時,不參與召回。

參數格式:&sf=number

使用樣本

query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6&sf=0.8'

指定top n 查詢

功能說明:指定向量檢索返回的top結果數

參數格式:&n=number

  • 直接拼接在向量之後

使用樣本

query=vector_index:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6&n=10'

擷取向量得分排序

功能說明:通過在業務排序運算式中設定proxima_score() 函數擷取向量得分進行排序。

配置步驟

  1. 建立業務排序策略:

image

:proxima_score函數的參數為向量索引名稱。

  1. 搜尋測試頁面引用,建立的業務排序策略進行測試:

image

說明
  • 系統預設使用歐式距離(l2)

  • 內積距離(ip),向量得分越大,文檔相關性越高

  • 歐式距離(l2),向量得分越小,文檔相關性越高

注意事項

  • 系統預設在構建索引時的向量距離方式為歐式距離(l2),如需內積距離(ip),需要將內積距離的向量歸一化後在傳入引擎

  • 向量索引對應的欄位必須為DOUBLE_ARRAY類型。

  • 向量分詞器目前支援的維度有64維、128維、256、512維,每個維度對應的DOUBLE_ARAARY類型的欄位中的元素也必須為64維、128維、256維、512維,必須精準對應。

  • 向量索引的長度限制為編碼前4K,一般一個query裡面最多支援查詢2個向量索引