sort

sort  排序

  指定按一个或多个字段排序。可通过_score指定按评分值排序,_doc 按索引顺序排序。默认是按相关性评分从高到低排序

GET /user/_search
{
  "query": {
    "match_all": {}
  },
  "sort":{
    "age":{
      "order":"desc"
    }
  }
}

  order 值:asc、desc。如果不给定,默认是asc,_score默认是desc

多值字段排序

  对于值是数组或多值的字段,也可进行排序,通过mode参数指定按多值的:

       min最小值,max最大值,sum和,avg平均值,median中值

PUT /my_index/_doc/1?refresh
{
   "product": "chocolate",
   "price": [20, 4]
}

POST /my_index/_search
{ 
   "query" : {
      "term" : { "product" : "chocolate" }
   },
   "sort" : [
      {"price" : {"order" : "asc", "mode" : "avg"}}
   ]
}

地理空间距离排序

GET /_search
{
    "sort" : [
        {
            "_geo_distance" : {
                "pin.location" : [-70, 40],
                "order" : "asc",
                "unit" : "km",
                "mode" : "min",
                "distance_type" : "arc"
            }
        }
    ],
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

参数说明:

  _geo_distance 距离排序关键字
  pin.location是 geo_point 类型的字段
  distance_type:距离计算方式 arc球面 、plane 平面。
  unit: 距离单位 km 、m 默认m

posted on 2023-06-10 07:38  溪水静幽  阅读(18)  评论(0)    收藏  举报