全部產品
Search
文件中心

OpenSearch:向量召回

更新時間:Sep 05, 2025

為滿足更加多元化和複雜的業務情境,OpenSearch推出了向量檢索功能。在特定業務情境下,特別是在教育搜題和圖片搜尋情境中,結合多路搜尋功能可以顯著提升搜尋結果的準確性。本文將對向量索引的文法說明及其注意事項進行詳細介紹。

文法說明

query = vector_index:'向量'&vector_search={"vector_index":{"namespaces":[],"threshold":0.5,"top_n":10,"search_params":{}}}

其中vector_search為選擇性參數,用於向量索引查詢配置。整體是一個字典格式,key為查詢的向量索引,value為具體的查詢配置。value常用配置項包括:

參數名

類型

預設值

說明

namespaces

list<string>

通過命名空間將向量索引進行分區,查詢請求可被限制在索引的不同分區中;命名空間數不建議超過10000個;配置了命名空間後,查詢時必須指定命名空間。

threshold

float

向量召回最低分閾值。

top_n

uint32

向量召回topN。

search_params.qc_scan_ratio

float

0.01

QC索引查詢時掃描文檔數量比例,掃描的文檔數=總文檔數 * scan_ratio

search_params.hnsw_ef

uint32

500

HNSW索引查詢時掃描的文檔數,值越大,召回率越高,相應耗時越大。

說明

vector_search參數在多路召回情境同樣有效。

樣本:查詢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

新版參數格式vector_search={"vector_index":{"threshold":0.8}}

使用樣本

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

// 新版
query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6'&vector_search={"index_name":{"threshold":0.8}}

指定top n 查詢

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

舊版參數格式&n=number

新版參數格式vector_search={"vector_index":{"top_n":10}}

使用樣本

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

// 新版
query=vector_index:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6'&vector_search={"index_name":{"top_n":10}}

擷取向量得分排序

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

配置步驟

  1. 建立業務排序策略:

image

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

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

image

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

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

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

注意事項

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

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

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

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