Elasticsearch 基础教程

Elasticsearch 高级教程

Elasticsearch 插件

Elasticsearch 笔记

es 查询某个字段不为空值的结果,如何操作?

Elasticsearch 笔记 Elasticsearch 笔记


elasticsearch(es)如何查询指定字段不为空值的结果,空值包含 null 值,对应的 query 语句是什么?

正确答案

es 针对上述用户诉求,提供了 exists query,它属于词项查询类(term query);

在使用 exists query 时,需要明确的是它定义的字段是否存在值的情况有如下几种,假设判断 user 字段不为空值的结果:

  1. { "user" : null }
    虽然有 user 字段,但是值为 null 空值;
  2. { "user" : [] }
    虽然有 user 字段,但是值为空数组;
  3. { "user" : [null] }
    虽然有 user 字段,但是值为 null 空值;
  4. { "knowledge" : "dict" }
    没有 user 字段。

exists query 语句如下:

{
  "query": {
    "exists": {
      "field": "user"
    }
  }
}