全部產品
Search
文件中心

OpenSearch:教育行業模板-多路搜尋

更新時間:Jul 13, 2024

介紹

OpenSearch的多路搜尋功能結合了文本搜尋和向量搜尋,做到了搜尋延遲和計算消耗低於OR邏輯情況下更高的準確性,並在搜題情境已經得到有效驗證。多路召回架構還可以使用到:圖片向量召回、公式召回、個人化召回等情境中。image

純文字查詢與多路搜尋在搜題情境下的對比

為什麼搜題要做多路召回?教育拍照搜題情境相比網頁/電商的文本搜尋有顯著差異:

  • 搜尋Query特別長:常規檢索term數上限30,搜題可能需要100

  • 搜尋Query可能是由拍照OCR識別之後得到的文本,關鍵term的識別錯誤會嚴重影響召回排序

純文字查詢方案

1.OR邏輯查詢:

  • 為了降低無結果率,搜題客戶常見的系統是基於ES預設的OR邏輯,搜尋延遲高,計算消耗大

  • OpenSearch也支援OR邏輯,針對搜尋延遲高可以通過並行搜尋的方式最佳化,但整體計算消耗仍然高​

2.AND邏輯查詢

  • 採用通用的Query分析模組,無結果率高,整體準確性不如OR邏輯

  • 針對教育領域最佳化定製的Query分析模組,大幅提高效果,準確性接近OR邏輯

文本向量檢索

目標:通過文本向量檢索擴召回,結合AND邏輯查詢,做到搜尋延遲和計算消耗低於OR邏輯的情況下準確性更高向量召回採用BERT模型,其中針對教育搜題做的特別最佳化有:

  • BERT模型採用達摩院自研的StructBERT,並針對教育行業定製模型

  • 向量檢索引擎採用達摩院自研的proxima引擎,準確性和運行速度遠超開源系統

  • 訓練資料可以基於客戶的搜尋日誌不斷積累,效果持續提

效果:

  1. 召回率達到OR邏輯

  2. 準確性超出OR邏輯3%-5%

  3. 整體召回doc數量減少40倍,搜尋延遲降低10倍以上

教育行業模板的多路搜尋配置

1.配置教育行業模板,行業模板配置完成後檢查是否配置了對應的向量索引(這裡用的是“向量-教育向量k12”):image2.建立查詢分析,增加一個“文本向量化”功能,並配置上1中設定的向量索引:image3.設定排序策略,教育行業模板預設會建立兩個CAVA指令碼的業務排序(sys_text_rank-針對文本索引、sys_vector_rank- 針對向量索引):image

4.建立多路召回策略,步驟為:設定策略名稱稱 --> 多路搜尋配置(向量索引,文本索引) --> 配置綜合排序(排序邏輯,參與排序的文檔數量) :image

5.控制台測試

假設查詢query為:搜尋測試,多路搜尋查詢策略為sys_strategy,查詢分析規則為sys_defaultimage:圖中的三個參數,缺一不可(查詢分析如果設定為預設,這裡可以省略)。查詢請求格式:

query=default:'搜尋測試'&search_strategy=sys_strategy&raw_query=搜尋測試&qp=sys_default

SDK參數配置:(以Java為例)

...
   
//定義Config對象,用於設定config子句參數,用於分頁或設定資料返回格式
Config config = new Config(Lists.<String>newArrayList(appName));
config.setStart(0);
config.setHits(10);
​
//設定返回格式為json
config.setSearchFormat(SearchFormat.FULLJSON);
​
​
// 建立參數對象
SearchParams searchParams = new SearchParams(config);
​
//設定查詢需要傳入的參數
HashMap<String,String> paraMap=new HashMap<String,String>();
//設定raw_query
paraMap.put("raw_query","搜尋測試");
//設定多路搜尋
paraMap.put("search_strategy","sys_strategy");
searchParams.setCustomParam(paraMap);
​
//設定查詢分析
List<String> qpName = new ArrayList<String>();
qpName.add("sys_default");  //設定查詢分析名稱
searchParams.setQueryProcessorNames(qpName);
​
...

注意事項

  • 多路召回功能目前只針對獨享型應用進行開放;

  • 多路召回功能暫不支援aggregate、distinct子句;

  • 每個應用最多建立10個多路召回的查詢策略;

  • 多路搜尋配置中,文本搜尋向量搜尋是必選項,並且二者的召回結果佔比和需為100%;

  • 多路搜尋配置中,文本搜尋向量搜尋的基礎排序從排序配置-基礎排序中選擇,業務排序從排序配置-業務排序中選擇;

  • 綜合排序配置中,歸併排序從業務排式中選擇,必選,也可以選擇“無”,預設選擇“無”,排序文檔數量為必填,最多為5000,需填寫大於0的值;

  • 非系統自動產生的向量索引,無法在查詢分析文本向量化功能中選擇。

  • 如需使用自建向量索引的多路搜尋功能,請聯絡我們。