子句說明
用戶可以通過查詢語句控制結果的排序方式,包括指定排序的字段和升降序。
子句語法
排序子句格式為:+field1;-field2
field為要排序的字段,+為按字段值升序排序,-為降序排序,默認降序排序。
field也支持簡單的算術運算,如+、-、*、\等,但參與運算的字段類型必須一致。
支持多維排序,中間用分號(;)分隔;多維排序的含義為,先按照第一維分數(shù)排序,如果第一維分數(shù)一樣,再按照第二維分數(shù)進行檔內排序,以此類推。
field部分也可以為“RANK”,表示按照相關性(即排序表達式的計算分值)進行排序。
示例:
sort=+type;-RANK,優(yōu)選按照type升序排序,type相同按照相關性降序排序
sort=-(hits+comments),并按照hits和comments總和降序排序
sort=+distance(lon,lat,"120.34256","30.56982"),并且按照用戶(120.34256,30.56982)距離商家(lon, lat)的距離進行由近及遠的排序
注意事項
sort為非必選子句。如果不填,則默認為sort=-RANK(按照相關性分值降序返回結果);如果顯式使用了sort子句,且子句中不包含RANK,那么定義了排序表達式也不會起作用;
在sort中出現(xiàn)的字段必須在定義應用結構的時候,創(chuàng)建為屬性;
返回為int或者float類型的排序特征function函數(shù)也可以在sort子句中使用;
string 類型字段,英文字母按字母先后順序排序,數(shù)字按位置按個比較大小排序,中文按ASCII碼排序。
sort子句中不支持使用多值字段。
多維sort(如:sort=-field1;-field2;-field3)排序性能與每一維排序的數(shù)據(jù)特點有關,所以排序性能不能穩(wěn)定保證,推薦使用排序表達式做排序。
文檔內容是否對您有幫助?