子句說明
用戶可以通過查詢語句控制結果的排序方式,包括指定排序的字段和升降序。
子句語法
排序格式為:
expression: field
field為要排序的字段
field也支持簡單的算術運算,如+、-、*、\等,但參與運算的字段類型必須一致。
field部分也可以為“RANK”,表示按照相關性(即排序表達式的計算分值)進行排序。
order字段用來定義升降序,asc為按字段值升序排序,desc為降序排序,默認降序排序。
支持多維排序;多維排序的含義為,先按照第一維分數排序,如果第一維分數一樣,再按照第二維分數進行檔內排序,以此類推。
示例:
{
"sort" : [
{
"expression" : "price*10",
"order" : "desc"
},
{
"expression" : "RANK",
"order" : "asc"
}
]
}
sort子句是一個可選子句,可以定義排序表達式,控制升序和降序。
注意事項
sort為非必選子句。如果不填,則默認用RANK的降序(按照相關性分值降序返回結果);如果顯式使用了sort子句,且子句中不包含RANK,那么定義了排序表達式也不會起作用;
在sort中出現的字段必須在定義應用結構的時候,創建為屬性;
返回為int或者float類型的排序特征function函數也可以在sort子句中使用;
string 類型字段,英文字母按字母先后順序排序,數字按位置按個比較大小排序,中文按ASCII碼排序。
sort子句中不支持使用多值字段。
多維sort排序性能與每一維排序的數據特點有關,所以排序性能不能穩定保證,推薦使用排序表達式做排序。
文檔內容是否對您有幫助?