开发者

在es中查询null值的操作方法

开发者 https://www.devze.com 2023-02-02 10:36 出处:网络 作者: huan_1993
目录1、背景2、需求3、准备数据3.1 创建mapping3.2 插入数据4、查询 name字段为null的数据5、查询address不存在或值直接为null的数据6、参考链接1、背景
目录
  • 1、背景
  • 2、需求
  • 3、准备数据
    • 3.1 创建mapping
    • 3.2 插入数据
  • 4、查询 name字段为null的数据
    • 5、查询address不存在或值直接为null的数据
      • 6、参考链接

        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_val编程ue"编程客栈: "-1"
              }
            }
          }
        }

        注意:

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

        在es中查询null值的操作方法

        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. 开发者_JS学习据中存在 nameaddress字段 是 [] 的
        3. 数据中存在 nameaddress字段 是 [null] 的
        4. 数据中存php在 nameaddress字段 都有值的

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

        在es中查询null值的操作方法

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

        在es中查询null值的操作方法

        在es中查询null值的操作方法

        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值的文章就介绍到这了,更多相关es中查询null值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

        0

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        关注公众号