排序与相关性
1、排序
默认是根据相关性_score进行降序排序。
filter会导致_score为0,如果0分对我们造成了影响可以使用constants_score,1分
2、按照字段的值排序
GET /_search
{
"query" : {
"bool" : {
"filter" : { "term" : { "user_id" : 1 }}
}
},
"sort": { "date": { "order": "desc" }}
}
_score不被计算(如果无论如何都要计算_score,可以将参数track_scores设置为true)
每个结果中包含sort字段,以时间毫秒数显示
Tip:可以指定字段来排序
"sort": "number_of_children"
字段默认升序排序,而_score降序排序
3、多级排序
GET /_search
{
"query" : {
"bool" : {
"must": { "match": { "tweet": "manage text search" }},
"filter" : { "term" : { "user_id" : 2 }}
}
},
"sort": [
{ "date": { "order": "desc" }},
{ "_score": { "order": "desc" }}
]
}
首先按照第一个条件排序,第一个值完全相同才进入第二个条件排序
4、多值字段的排序
字段有多个值的排序,可以使用排序模式min/max/avg/sum
"sort": {
"dates": {
"order": "asc",
"mode": "min"
}
}
网友评论