16-搜索结果处理-排序

发布时间 2023-05-22 15:35:21作者: JustJavaIt

  搜索的结果可以按照用户指定的方式去处理或展示。

排序

 elasticsearch默认是根据相关度算分(_score)来排序,但是也支持自定义方式对搜索结果排序。可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。

普通字段排序

  keyword、数值、日期类型排序的语法基本一致。

语法

 排序条件是一个数组,也就是可以写多个排序条件。按照声明的顺序,当第一个条件相等时,再按照第二个条件排序,以此类推。

示例

需求描述:酒店数据按照用户评价(score)降序排序,评价相同的按照价格(price)升序排序

 1 #排序
 2 
 3 #普通字段排序
 4 GET /hotel/_search
 5 {
 6   "query": {
 7     "match_all": {}
 8   },
 9   "sort": [
10     {
11         "score": "desc",
12          "price": "asc"
13     }
14   ]
15 }
View Code