Elasticsearch提供了多种方法来进行排序查询。
sort
参数指定排序字段和排序顺序。例如,使用以下查询可以按照age
字段升序排列结果:GET /index/_search
{
"query": {
"match_all": {}
},
"sort": [
{ "age": "asc" }
]
}
sort
参数的_script
字段来指定排序脚本。例如,使用以下查询可以按照自定义的脚本排序结果:GET /index/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"_script": {
"type": "number",
"script": {
"source": "doc['age'].value * params.multiplier",
"params": {
"multiplier": 2
}
},
"order": "asc"
}
}
]
}
sort
参数的_geo_distance
字段根据距离进行排序。例如,使用以下查询可以按照指定坐标点与文档中地理位置字段之间的距离排序结果:GET /index/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"_geo_distance": {
"location": {
"lat": 40.712776,
"lon": -74.005974
},
"order": "asc",
"unit": "km"
}
}
]
}
这些是一些常见的排序查询方法,你可以根据具体的需求选择适合的方法来进行排序查询。