本文將為您詳細介紹業務排序中所支援的相關函數。
功能概述
業務排序運算式主要針對基礎排序後召回的結果進行進一步排序算分,最終將最優結果返回給使用者。該運算式允許使用者為應用自訂搜尋結果的排序方式,通過在查詢請求中指定相應的運算式來實現結果排序。排序運算式支援基本運算(包括算術運算、關係運算、邏輯運算、位元運算和條件運算)、數學函數以及排序特徵等功能。OpenSearch為幾種經典應用(如論壇、資訊等)提供了相關性實戰,使用者可以根據自身資料的特點,選擇合適的運算式模板,並在此基礎上進行修改,以產生符合自己需求的運算式。
排序運算式中一律使用數值或數值欄位類型參與基本運算操作,例如算術、關係,邏輯,條件等運算操作,大部分函數都不支援字串類型進行運算。
文本相關性
text_relevance: 關鍵詞在欄位上的文本匹配度。
field_match_ratio: 擷取某欄位上與查詢詞匹配的分詞片語個數與該欄位總片語個數的比值。
query_match_ratio:擷取查詢詞中(在某個欄位上)命中片語個數與總片語個數的比值。
fieldterm_proximity: 用來表示關鍵詞分詞片語在欄位上的緊密程度。
field_length:擷取某個欄位上的分詞片語個數。
query_term_count: 返回查詢詞分詞後片語個數。
query_term_match_count:擷取查詢詞中(在某個欄位上)命中文檔的片語個數。
field_term_match_count:擷取文檔中某個欄位與查詢詞匹配的片語個數。
query_min_slide_window:查詢詞在某個欄位上命中的分詞片語個數與該片語在欄位上最小視窗的比值。
地理位置相關性
distance: 擷取兩個點之間的球面距離。一般用於LBS的距離計算。
gauss_decay,使用高斯函數,根據數值和給定的起始點之間的距離,計算其衰減程度。
linear_decay,使用線性函數,根據數值和給定的起始點之間的距離,計算其衰減程度。
exp_decay,使用指數函數,根據數值和給定的起始點之間的距離,計算其衰減程度。
時效性
timeliness: 時效分,用于衡量文檔的新舊程度,單位為秒。
timeliness_ms: 時效分,用于衡量文檔的新舊程度,單位為毫秒。
功能性
tag_match: 用於對查詢語句和文檔做標籤匹配,使用匹配結果對文檔進行算分加權。
first_phase_score: 擷取粗排運算式最終計算分值。
kvpairs_value: 擷取查詢串中kvpairs子句中指定欄位的值。
normalize:歸一化函數,根據不同的算分將數值歸一化至[0, 1]。
in和notin : 判斷欄位值是否(不)在指定列表中。