首页 > 解决方案 > Elasticsearch:查询以搜索字段是否根本不存在,不应匹配 [](空数组字段)

问题描述

我有一些带有字段的文档,links : []而其他文档根本没有该字段links

我想获取根本没有该字段links的文档。我尝试了以下查询:

{
    "query": {
        "bool": {
            "must_not": {
                "exists": {
                    "field": "links"
                }
            }
        }
    }
}

但是这个查询也返回文档links:[]

标签: elasticsearch

解决方案


您最好的选择是修改字段映射以考虑空值,请参阅此链接(文档)。

您可以在布尔值中使用通配符查询 * 来查看它是否有任何术语 - 但这是一种非常低效/缓慢的查询方式,并且可能不实用,具体取决于该字段的基数。


推荐阅读