elasticsearch - Elastic Search 按在另一个字段中定义的字段排序
问题描述
我有两个字段:count(对象)和countyby(文本)。count 对象有几个 number 类型的嵌套属性:
"count" : {
"properties" :
"value1" : {
"type" : "long"
},
"value2" : {
"type" : "long"
},
"value3" : {
"type" : "long"
},
"value4" : {
"type" : "long"
},
"value5" : {
"type" : "long"
}
},
"countBy": {
type: "keyword"
}
我需要进行搜索,根据 countBy 属性中指定的计数嵌套属性的值对文档进行排序
解决方案
您可以通过基于脚本的排序来实现这一点:
"sort" : {
"_script" : {
"type" : "number",
"script" : {
"lang": "painless",
"source": "doc['countBy'].value != null ? doc['count.'+doc['countBy'].value].value : 0"
},
"order" : "desc"
}
}
推荐阅读
- javascript - 如何从 Object.value 中找到平均值 - 错误 NaN
- python - 填充浮点列的 np.nan 条目给出 ValueError: fill value must be in categories
- c# - Microsoft.Office.Interop.Word.dll - InvalidCastException
- javascript - Tailwind CSS 不使用 React 和 Express 编译?
- python - 如何从行值中删除除 int 的第一个实例之外的所有内容?
- c# - 如何初始化不可为空的泛型类型属性(或字段)(c#8 或 9)
- java - 将 SpringBoot Java 应用程序连接到外部 mongodb
- sql - 如何从具有角度前端类型缓冲区和数据数组的对象中提取音频/wav
- ios - FullScreenCover 不关闭 - SwiftUI
- python - QML - .qml 文件中的“连接”不会触发来自 python 脚本的信号