Elasticsearch 基础教程

Elasticsearch 高级教程

Elasticsearch 插件

Elasticsearch 笔记

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"
    }
  }
}