gpt4 book ai didi

如何在es中查询null值

转载 作者:我是一只小鸟 更新时间:2023-01-29 22:37:37 27 4
gpt4 key购买 nike

目录
  • 1、背景
  • 2、需求
  • 3、准备数据
    • 3.1 创建mapping
    • 3.2 插入数据
  • 4、查询 name 字段为null的数据
  • 5、查询 address 不存在或值直接为null的数据
  • 6、参考链接

1、背景

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

2、需求

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

我们插入数据时,存在 name 和 address 字段都不存在的,存在 name 和 address 是 [] 或 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 需要和字段的 类型值 保持一致,比如上方的 age integer 类型,那么 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. 数据中存在 name address 字段都不存在的
  2. 数据中存在 name address 字段 是 [] 的
  3. 数据中存在 name address 字段 是 [null] 的
  4. 数据中存在 name address 字段 都有值的

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值的文章就讲到这里了,如果你想了解更多关于如何在es中查询null值的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com