Elasticsearch 基础教程

Elasticsearch 高级教程

Elasticsearch 插件

Elasticsearch 笔记

Elasticsearch FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/elasticsearch-query-for-not-null-field.html

es(elasticsearch)如何获取字段值存在的文档

Elasticsearch 笔记 Elasticsearch 笔记


在使用 es 时,我们经常需要获取指定字段存在值的对应文档(document),es 提供了属于 term 类查询的 exists 查询来满足该需求。

字段值存在的定义

首先,我们要明确哪些情况认为是字段值不存在的,具体如下:

  • { "tag" : null } 虽然有 tag 字段,但是值为空。
  • { "tag" : [] } 虽然有 tag 字段,但是值为空数组。
  • { "tag" : [null] } 虽然有 tag 字段,但是数组值为空。
  • { "content" : "knowledgedict" } 没有 tag 字段。

字段值为空字符串的认为是字段值存在的。

解决方法

GET article/_search
{
  "query": {
    "exists": {
      "field": "tag"
    }
  }
}