zoukankan      html  css  js  c++  java
  • Elasticsearch 字段为空(null)记录查询

    在Elasticsearch 的使用和不断深入中,我们常常会遇到各种各样的问题;
    在此,记录下Elasticsearch 字段为空记录查询;
     
    1.查询为空的字段
    我们查询某个字段为空的数据时,在mysql中:
    select eid,ent_name from ent_search where enttype_code is NULL;
    在elasticsearch中,我们使用的api为exists,这个查询是:查询这个字段为空的或者没有这个字段的:
    GET ent_search/_search
    {
      "_source": ["eid","ent_name"],
        "query": {
            "bool": {
                "must_not": {
                    "exists": {
                        "field": "enttype_code"
                    }
                }
            }
        }}
     
    2.查询某个不为空的字段
    我们查询某个字段不为空的数据时,在mysql中:
    select eid,ent_name from ent_search where enttype_code is NOT NULL;
    在elasticsearch中,我们使用的api为exists,这个查询是:
    GET ent_search/_search
    {
      "_source": ["eid","ent_name","enttype_code"],
      "query": {
        "constant_score": {
          "filter": {
            "exists": {
              "field": "enttype_code"
            }
          }
        }
      }}
     
    ### 查询例子
    sql_example:
    select msg,level  from jsonlog3-2019.06.26 where msg is NULL;
    es_explain:
    GET /jsonlog3-2019.06.26/_search
    {
      "_source": ["msg","level"],
      "query": {
      "bool": {
      "must": [
        {"bool": {"must_not": [
        {"exists": {"field": "msg"}}
          ]}}
          ]
      }
    }}
     
    sql_example:
    select msg,level  from jsonlog3-2019.06.26 where msg is not NULL;
    es_explain:
    GET /jsonlog3-2019.06.26/_search
    {
      "_source": ["msg","level"],
      "query": {
      "bool": {
      "must": [
        {"bool": {"must": [
        {"exists": {"field": "msg"}}
          ]}}
          ]
      }
    }}
     
    OR
     
    GET /qdtech-jsonlog3-2019.06.26/_search
    {
      "_source": ["msg","level"],
      "query": {
        "constant_score": {
          "filter": {
            "exists": {
              "field": "msg"
            }
          }
        }
      }
    }
     
    注:es中字段不存在 和 字段为null 是同一个概念;
     
  • 相关阅读:
    python 中 print函数的用法详解
    可转债操作一览
    Python基本数据类型
    python的列表
    理财的方法
    92、Multiple commands produce Info.plist 报错
    91、最新cocoaPods安装与使用
    90、引入头文件不提示
    89、instancetype和id的区别
    88、const、static、extern介绍
  • 原文地址:https://www.cnblogs.com/illusioned/p/11915080.html
Copyright © 2011-2022 走看看