主要知识点
- 默认排序
- 自定义排序
一、默认排序规则
es在默认情况下,是对搜索结果按照各个结果document的_score降序排序的。
然而,某些情况下,可能没有有用的_score,比如说直接用filter,可用constant_score这种情况下其实并没有真正的排序。
GET /_search
{
"query" : {
"bool" : {
"filter" : {
"term" : {
"author_id" : 1
}
}
}
}
}
GET /_search
{
"query" : {
"constant_score" : {
"filter" : {
"term" : {
"author_id" : 1
}
}
}
}
}
二、自定义排序
示例:
GET /company/employee/_search
{
"query": {
"constant_score": {
"filter": {
"range": {
"age": {
"gte": 10
}
}
},
"boost": 2
}
},
"sort": [
{
"join_date": {
"order": "desc"
}
}
]
}
- "boost": 2 确定搜索结果中的document的_source=2,但是加上排序规则之后_source=null,不加就是2
- sort 是一个列表,所以有多个排序规则。
- 以加入时间升序排序,asc-->升序,desc ---->降序