882
windows
搜索相關性配置__應用高級配置_產品使用手冊_開放搜索-阿裏雲
排序表達式(Ranking Formula)允許用戶為應用自定義搜索結果排序方式,通過在查詢請求中指定表達式來對結果排序。排序表達式支持基本運算(算術運算、關係運算、邏輯運算、位運算、條件運算)、數學函數和排序特征(feature)等。Open Search對於幾種經典的應用(如論壇、資訊等)提供了表達式模板,用戶可根據自己數據的特點,選擇合適的表達式模板,並以此為基礎進行修改,生成自己的表達式。
在進行相關性排序之前,首先要了解下係統排序策略:通過query等子句找到符合條件的文檔後,會進入排序階段(具體參見sort子句),如果未指定sort子句或者sort子句中顯式指定了RANK,那麼都將進入到相關性算分階段。
搜索引擎對於檢索性能要求比較高,為此,係統開放了兩階段排序過程:粗排和精排。粗排即是海選,從檢索結果中快速找到質量高的文檔,取出TOP N個結果再按照精排進行精細算分,最終返回最優的結果給用戶。由此可見,粗排對性能影響比較大,精排對最終排序效果影響比較大。因此,粗排要求盡量簡單有效,隻提取精排中的關鍵因子即可。
如何設計粗精排公式要取決於實際搜索場景的需求,最佳實踐-功能篇有個《相關性實戰》的文章,較詳細介紹了在幾個典型場景下如何來思考和設計排序因子,大家可以參考。
流程演示
主界麵:
添加新粗排表達式或編輯現有表達式
添加新精排表達式或編輯現有表達式
編輯表達式內容完成
基本運算
運算 | 運算符 | 說明 |
---|---|---|
一元運算 | - | 負號,功能為對某個表達式的值取負值,如-1, -max(width)。 |
算數運算 | +, -, *, / | 如width / 10 |
關係運算 | ==,!= ,>, <, >=, <= | 如width>=400 |
邏輯運算 | and ,or,! | 如width>=400 and height >= 300, !(a > 1 and b < 2) |
位運算 | &, |,^ | 如 3 & (price ^ pubtime) + (price | pubtime) |
條件運算 | if(cond, thenValue, elseValue) | 如果cond的值非0,則該if表達式的實際值為thenValue,否則為elseValue。如if(2, 3, 5)的值為3,if(0, 3, 5)的值為5。 |
in 運算 | i in [value1, value2, …, valuen] | 如果i的值在集合[value1, value2, …, valuen]中出現,則該表達式值為1,否則為0。例如: 2 in [2, 4, 6]的值為1,3 in [2, 4, 6]的值為0。 |
數學函數
函數 | 說明 |
---|---|
max(a, b) | 取a和b的最大值。 |
min(a, b) | 取a和b的最小值。 |
ln(a) | 對a取自然對數。 |
log2(a) | 對a取以2為底的對數。 |
log10(a) | 對a取以10為底的對數。 |
sin(a) | 正弦函數。 |
cos(a) | 餘弦函數。 |
tan(a) | 正切函數。 |
asin(a) | 反正弦函數 |
acos(a) | 反餘弦函數 |
atan(a) | 反正切函數。 |
ceil(a) | 對a向上取整,如ceil(4.2)為5。 |
floor(a) | 對a向下取整,如floor(4.6)為4。 |
sqrt(a) | 對a開方,如sqrt(4)為2。 |
pow(a,b) | 返回a的b次冪,如pow(2, 3)為8。 |
now() | 返回當前時間,自Epoch (00:00:00 UTC, January 1, 1970)開始計算,單位是秒。 |
random() | 返回[0, 1]間的一個隨機值。 |
內置特征函數
OpenSearch提供了豐富的內置特征函數,如LBS類、文本類、時效類等,可以用在排序表達式中,相互組合實現強大的相關性排序效果。
最後更新:2016-11-23 16:04:03
上一篇:
索引重建__應用基本配置_產品使用手冊_開放搜索-阿裏雲
下一篇:
搜索相關性函數__應用高級配置_產品使用手冊_開放搜索-阿裏雲
去重設備統計__查詢相關_API 列表_OpenAPI 2.0_移動推送-阿裏雲
專有網絡API的鑒權規則__借助RAM實現子賬號對主賬號的VPC資源訪問_API參考_專有網絡 VPC-阿裏雲
視頻轉碼回調消息講解___視頻專區_媒體轉碼-阿裏雲
Demo 工程配置__MQ Demo 工程_消息隊列 MQ-阿裏雲
SetSecurityPreference__安全設置接口_RAM API文檔_訪問控製-阿裏雲
Queue__基本概念_API使用手冊_消息服務-阿裏雲
HTTP 協議規範__HTTP 接入(簡單)_消息隊列 MQ-阿裏雲
初始化__Android SDK_SDK使用手冊_消息服務-阿裏雲
請求簽名機製__調用方式_API使用手冊_消息服務-阿裏雲
升級流程__購買指導_雲解析-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲