默认情况下,ES的结果集会按照相关性进行排序 -- 相关性越高,排名越靠前。不过这个规则到了实际应用中往往并不能完全满足我们多变的需求,对于查询结果,除了要找出它们来,还经常需要根据某一规则进行排列,这个规则一般就是指按照某一特定字段排序。
按照date字段降序排列
GET /_search
{
"query" : {
"filtered" : {
"filter" : { "term" : { "user_id" : 1 }}
}
},
"sort": { "date": { "order": "desc" }}
}
默认情况下,/_search方法会自动计算_score相关性并用来排序,但是如果不以相关性为依据排序的时候,ES也就不会自动计算相关性分值了,此时查询结果中的_score和max_score值为null,如下图:
![0818b9ca8b590ca3270a3433284dd417.png](https://img-blog.csdnimg.cn/img_convert/0818b9ca8b590ca3270a3433284dd417.png)
多字段排列
GET /_search
{
"query" : {
"filtered" : {
"query": { &#