Elasticsearch查询是否匹配任何嵌套字段为空?

我有一个带有嵌套对象数组的模型,这些对象本身也有一个嵌套数组作为其属性之一。如果模型数组中任何对象的嵌套数组之一为空,我想返回一个匹配项。

例如希望基于model.objects[0].attribute2为空

来匹配此模型
model : {
    objects : [
        {attribute1: null,attribute2: []},{attribute1: 'hello',attribute2: [...more nested models]}
    ]
}

如果与非嵌套属性匹配,例如如果attribute1中的任何一个为空,则此查询要匹配,则正确地匹配其中attribute1之一的objects的值为null的记录:

{
    "nested": {
        "path": "objects","query": {
            "bool": {
                "must_not": [
                    {
                        "exists": {
                            "field": "objects.attribute1"
                        }
                    }
                ]
            }
        }
    }
}

但是,如果我尝试使用attribute2做同样的事情,那么它似乎根本什么都没有做,只是返回了所有文档。

coldboyjack 回答:Elasticsearch查询是否匹配任何嵌套字段为空?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3115913.html

大家都在问