弹性搜索按另一个字段中定义的字段排序
Elastic Search sort by field defined in another field
我有两个字段:count(对象)和 countyby(文本)。计数对象有几个数字类型的嵌套属性:
"count" : {
"properties" :
"value1" : {
"type" : "long"
},
"value2" : {
"type" : "long"
},
"value3" : {
"type" : "long"
},
"value4" : {
"type" : "long"
},
"value5" : {
"type" : "long"
}
},
"countBy": {
type: "keyword"
}
我需要进行搜索,根据在 countBy 属性
中指定的计数嵌套 属性 的值对文档进行排序
您可以通过 script-based sorting 实现此目的:
"sort" : {
"_script" : {
"type" : "number",
"script" : {
"lang": "painless",
"source": "doc['countBy'].value != null ? doc['count.'+doc['countBy'].value].value : 0"
},
"order" : "desc"
}
}
我有两个字段:count(对象)和 countyby(文本)。计数对象有几个数字类型的嵌套属性:
"count" : {
"properties" :
"value1" : {
"type" : "long"
},
"value2" : {
"type" : "long"
},
"value3" : {
"type" : "long"
},
"value4" : {
"type" : "long"
},
"value5" : {
"type" : "long"
}
},
"countBy": {
type: "keyword"
}
我需要进行搜索,根据在 countBy 属性
中指定的计数嵌套 属性 的值对文档进行排序您可以通过 script-based sorting 实现此目的:
"sort" : {
"_script" : {
"type" : "number",
"script" : {
"lang": "painless",
"source": "doc['countBy'].value != null ? doc['count.'+doc['countBy'].value].value : 0"
},
"order" : "desc"
}
}