子句說明
使用者可以通過查詢語句控制結果的排序方式,包括指定排序的欄位和升降序。
子句文法
排序格式為:
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排序效能與每一維排序的資料特點有關,所以排序效能不能穩定保證,推薦使用排序運算式做排序。