全部產品
Search
文件中心

OpenSearch:類目預測功能使用

更新時間:Aug 23, 2026

流程介紹

溫馨提示:圖中的內容必須都配置上,類目預測才會生效。

流程示範

建立並訓練類目預測模型

  1. 在左側導覽列中,進入排序配置->類目預測頁面,點擊“建立”,進入建立流程。

  2. 進入建立流程後,需要填入模型名稱,資料類型,商品ID,商品標題,類目ID,類目名稱,過濾條件等資訊。

    樣本中,目標應用選擇Ha3引擎下的keep_algo_metrics_enh_vpc,模型名稱填寫test_categroy_model,資料類型勾選物品資料,欄位對應中商品ID選擇id,商品標題選擇title,類目ID選擇cate_id,類目名稱選擇title。

    • 資料類型:

      • 物品資料即為當前應用中已有的文檔資料,但需要應用中需要事先儲存類目ID、物品標題以及類目名稱三個欄位的資料;

      • 行為資料為上傳的使用者點擊行為採集資料,具體可參考資料擷取文檔。

    • 類目ID:應用中表示類目ID的欄位,支援INT類型。必填。

    • 物品標題:應用中表示物品標題的欄位,支援TEXT、LITERAL類型。必填。

    • 類目名稱:應用中表示類目名稱的欄位,支援TEXT、LITERAL類型。必填。

    • 過濾條件:選填。如果要填寫,需要保證過濾條件中出現的欄位名稱必須是應用結構中的欄位名稱。過濾條件支援的操作運算子有:<、>、<=、>=、=、!=。多個過濾條件之間為AND關係,必須要使用英文逗號(,)分隔,表示且關係(暫不支援或關係)。例如,過濾條件為 is_onsale > 0。

  3. 配置完成後點擊完成進入類目預測模型詳情頁。

  4. 模型建立完成後,返回類目預測頁面,看到模型狀態為“待訓練”,點擊“啟動訓練”,訓練模型資料。

類目預測訓練狀態:

  • 待訓練:表示模型剛建立完成,但未做資料訓練的模型。

  • 訓練中:表示模型建立完成後進入訓練但還未完成訓練的模型。

  • 訓練失敗:表示資料錯誤造成的模型訓練失敗的模型。

  • 未應用:表示模型訓練成功,但並未在召回和排序功能中應用該模型。

配置查詢分析和排序運算式

  1. 在左側導覽列中,進入召回配置->查詢分析頁面,點擊“建立”,進入建立流程。

  2. 進入建立流程後,按下圖流程進行規則的編輯和建立。

  3. 然後在粗排或者精排中生效類目預測模型。在左側導覽列中,進入 排序配置->策略管理 頁面,點擊“建立”,進入建立流程。

以下為應用到基礎排序中的流程:

  1. 進入建立流程後填寫策略名稱稱,首先選擇基礎排序(第一輪粗排),選擇類型(目前控制台配置僅支援運算式,後續還會支援自訂外掛程式)。

  2. 然後在排序配置中,選中算分特徵下的category_score()

  3. 並配置搜尋欄位以及該算分特徵的權重,並儲存配置。

    例如,選擇算分特徵為 category_score(),搜尋欄位為 is_onsale,將權重設定為 13。

以下為應用到業務排序中的流程:

  1. 進入建立流程後填寫策略名稱稱,首先選擇業務排序(第二輪精排),選擇類型(目前控制台配置僅支援運算式,後續還會支援自訂外掛程式)。

    在目標應用下拉框中選擇需要配置排序策略的應用。策略名稱稱長度為1-30個字元,以字母開頭,可包含大小寫字母、數字和底線,且不能與其他同類型策略名稱稱相同。

  2. 然後在排序配置中,選中內建函數下的category_score(cate_id_field)

  3. 將cate_id_field改為模型的類目ID,並儲存配置。

    在排序配置的文本編輯地區中,輸入運算式 category_score(cate_id),將其中的 cate_id 替換為實際的類目 ID,然後單擊完成。

  4. 模型應用成功後的狀態。

    模型在查詢分析以及策略管理中應用成功後,模型管理列表中該模型的近一次訓練狀態列顯示為已應用。

  5. 搜尋測試效果展示,需要添加參數raw_query=查詢詞。

    在搜尋測試頁面選擇應用test_1及線上應用,query輸入框填寫default:'糯米',子句配置為config=start:0;hit:10;format:fulljson,在參數地區即可看到raw_query值為糯米。

通過SDK調用查詢介面

設定查詢參數raw_query:

  • 用於類目預測查詢;只有查詢詞和raw_query的內容一致時,查詢時,才會去查查詢分析中配置的類目預測;

  • 一般建議設定為終端使用者輸入的原始查詢詞。格式:

    raw_query=content
    //API傳參content需要URL_ENCODE(SDK不需要encode);content為原始查詢詞

    執行個體:假設某個應用的查詢分析規則配置如下表所示:

索引名

查詢分析規則名

配置類目預測

index1

rule1

No

index2

rule2

Yes

index3

rule3

Yes

  1. 查詢的索引沒有配置類目預測,請求中有raw_query,不會查詢類目預測,查詢正常返回;

  2. 查詢的索引沒有配置類目預測,請求中無raw_query,不會查詢類目預測,查詢正常放回;

  3. 查詢的索引配置類目預測,請求中無raw_query,不會查詢類目預測,查詢正常返回:a. query=index2:'search_query'

  4. 查詢的索引配置類目預測,請求中有raw_query,但和查詢索引中的查詢詞不同,不會查詢類目預測,查詢正常返回:a. query=index2:'search_query'&raw_query=raw_query

  5. 查詢的索引配置類目預測,請求中有raw_query,且和查詢索引中的查詢詞相同,查詢類目預測,查詢正常返回:a. query=index2:'search_query'&raw_query=search_query

  6. 查詢包含多個索引時,且query中有raw_query:a. query=index2:'index_query' AND index3:'search_query'&raw_query=search_query       # 類目預測在index3上生效;b. query=index2:'search_query' AND index3:'search_query'&raw_query=search_query      # 類目預測會優先在index2上生效,如沒有結果,會查詢index3上的類目預測

注意事項

  • 單個應用最多建立5個類目預測模型。

  • 查詢分析規則中配置的類目預測模型,其訓練欄位必須是該包含在該查詢規則所應用的索引中;

  • 在建立類目預測模型之前,需要保證類目預測所使用的相關欄位(類目ID)已添加到屬性欄位列表中

  • 當查詢分析中配置了類目預測時,如果查詢請求中設定了category_prediction參數,查詢會報錯。

  • 必須同時配置了查詢分析(類目預測)、排序運算式(category_score)以及查詢時帶有固定參數(raw_query),類目預測模型才會生效。

  • 如果建立模型時勾選了行為資料,類目預測模型會預測最近14天內被點擊過的查詢(query),換言之,如果沒有被點擊,就不會有類目預測結果。

  • 類目ID必須為正數,不能為負數,否則查詢會報錯server error。

  • 訓練類目預測需要滿足最近一天的獨立query數量大於100 , 獨立query數量表示在搜尋請求中添加raw_query參數請求成功的次數。

  • 相關管控API:演算法周邊

  • 請勿勾選“查詢分析-文本向量化”功能,文本向量化有預設的查詢策略,會觸發多路查詢,查詢策略裡面有個結果歸併排序,這個歸併排序裡面不支援擷取類目預測的排序得分。

模型訓練失敗排查

當類目預測模型訓練失敗時,可按以下步驟排查原因並解決:

  1. 查看異常報表:在模型詳情頁查看最新版本狀態,若狀態顯示異常,可查看異常報表,定位訓練失敗的具體原因。

  2. 查看完整度等級與升級條件:查看完整度等級及對應的升級條件,按升級條件調整資料以提升完整度,滿足訓練要求。

  3. T-1 資料邏輯(新建立模型首次訓練報欄位不存在):模型訓練使用前一天(T-1)的統計資料。若模型是當天新建立的,因當天尚無前一天的資料,首次訓練可能報"訓練欄位不存在"錯誤。此情況屬正常現象,等待次日資料就緒後重新啟動訓練即可。

  4. 資料量要求(L1 條件):訓練需滿足以下資料量條件:

    • 資料表中的資料量不少於 1000 條。

    • 最近一天的獨立 query 數量大於 100(獨立 query 數量為搜尋請求中添加 raw_query 參數請求成功的次數)。

  5. 過濾條件式格式設定:若配置了過濾條件,欄位名須為應用結構中的欄位名稱,多個條件之間為 AND 關係,必須使用英文逗號(,)分隔。格式不符會導致訓練失敗。

進階

  1. 查詢規則中配合實體識別功能使用類目預測,可以擴大類目預測的召回。查詢分析會更加實體識別的結果,在原query查詢得到類目預測無結果時,會按照一定規則對query進行丟詞,進一步查詢類目預測,並將丟詞後的類目預測結果作為最終的類目預測結果返回。具體見實體識別的文檔。

  2. 目前支援對訓練出的類目預測模型進行人工幹預。使用者實現幹預操作的過程與查詢分析幹預類似,類目預測幹預的操作步驟,請點擊查看文檔。