美文网首页js css html
如何在es中查询null值

如何在es中查询null值

作者: huan1993 | 来源:发表于2023-01-28 21:15 被阅读0次

    1、背景

    在我们向es中写入数据时,有些时候数据写入到es中的是null,或者没有写入这个字段,那么这个时候在es中该如何查询出这种为null的数据呢?

    2、需求

    假设我们的mapping存在 如下2个字段nameaddress,其中 namekeyword类型且使用了null_value来处理null值,address字段是text类型。

    我们插入数据时,存在nameaddress字段都不存在的,存在nameaddress[]null的数据,我们需要查询出来这些数据。

    3、准备数据

    3.1 创建mapping

    PUT /index_null_value
    {
      "mappings": {
        "properties": {
          "name":{
            "type": "keyword",
            "null_value": "--"
          },
          "address":{
            "type": "text"
          },
          "age":{
            "type": "integer",
            "null_value": "-1"
          }
        }
      }
    }
    

    注意:

    1. null_value 需要和字段的 类型值 保持一致,比如上方的ageinteger类型,那么null_value的值就必须是integer类型
    2. null_value 不会修改 _source中的值
    3. []空数组是不会被null_value替换的,因为[]中不包含明确的null
    4. null_value可以修饰的数据类型有限,比如text类型不可使用。
      null_value注意事项

    3.2 插入数据

    PUT /index_null_value/_bulk
    {"index":{"_id":0}}
    {"age":10}
    {"index":{"_id":1}}
    {"name":null,"address": null,"age":10}
    {"index":{"_id":2}}
    {"name":[],"address":[],"age":20}
    {"index":{"_id":3}}
    {"name":[null],"address":[null],"age":60}
    {"index":{"_id":4}}
    {"name":[null,"123"],"address":[null,"123"],"age":70}
    {"index":{"_id":5}}
    {"name":["123",null],"address":["123",null],"age":80}
    {"index":{"_id":6}}
    {"name":["123","456"],"address":["123","456"],"age":90}
    
    1. 数据中存在 nameaddress字段都不存在的
    2. 数据中存在 nameaddress字段 是 [] 的
    3. 数据中存在 nameaddress字段 是 [null] 的
    4. 数据中存在 nameaddress字段 都有值的

    4、查询 name字段为null的数据

    查询name字段为null的数据

    5、查询address不存在或值直接为null的数据

    查询address不存在或值直接为null的数据
    boolean exists

    6、参考链接

    1、https://www.elastic.co/guide/en/elasticsearch/reference/8.6/null-value.html
    2、https://www.elastic.co/guide/en/elasticsearch/reference/8.6/query-dsl-exists-query.html

    相关文章

      网友评论

        本文标题:如何在es中查询null值

        本文链接:https://www.haomeiwen.com/subject/siruhdtx.html