ES的文档在讲解Nested Sorting时,只简单说了一句支持脚本排序(https://www.elastic.co/guide/en/elasticsearch/reference/6.2/search-request-sort.html),但并没有给出具体的语法。我在一个项目需要基于一个嵌套字段进行脚本排序,摸索了好长时间才找出正确的语法结构,现分享出来,希望有类似需求的同学能节省一些时间,讲清结构如下:
{
"query": {...},
"sort": [
{
"_script": {
"type": "number",
"nested_path": "",
"nested_filter": {...},
"script": {
"lang": "painless",
"inline": "..."
},
"order": "asc"
}
}
]
}