53.对搜索结果排序

主要知识点

  • 默认排序
  • 自定义排序

   

一、默认排序规则

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 ---->降序
原文地址:https://www.cnblogs.com/liuqianli/p/8471873.html