es 编写查询DSL,查询user_name字段不为空的文档

发布时间 2023-09-24 15:43:22作者: Lucky小黄人^_^

内容来自对 chatgpt 的咨询

我们可以使用exists查询来检查user_name字段是否存在且包含非空值:

{
    "query": {
        "bool": {
            "must": {
                "exists": {
                    "field": "user_name"
                }
            }
        }
    }
}

这个查询将会返回所有包含user_name字段(字段值非空)的文档。如果你想要返回字段存在但可能为空的文档,你需要将查询改为"must_not" : { "term" : { "user_name" : "" } },这将返回字段存在并且值不为空的文档。