我正在尝试对多个term
查询使用elasticsearch(6.7)排序。
但是,当有3个term
查询时,它不会对数据进行排序。仅在我指定时有效
{
"term": {
"instance.instFields.sourceFieldId": {
"value": "16044"
}
}
},
下面是所有3个词的排序查询。
"sort": [
{
"instance.instFields.fieldDate": {
"order": "desc",
"nested_path": "instance.instFields",
"nested_filter": {
"bool": {
"must": [
{
"term": {
"instance.instFields.sourceFieldId": {
"value": "16044"
}
}
},
{
"term": {
"instance.dataSourceId": {
"value": "819"
}
}
},
{
"term": {
"instance.dsTypeId": {
"value": "2301"
}
}
}
]
}
}
}
}
],
感谢您提供帮助以解决此问题。
答案 0 :(得分:0)
instance.dataSourceId
和instance.dsTypeId
字段不在您声明的嵌套路径(instance.instFields
)之外,因此没有内部对象与嵌套过滤器匹配,并且它们也不会被排序考虑。
顺便说一句,从ES 6.1开始,nested_path
和nested_filter
选项已被弃用,取而代之的是path
和filter
。