在es中查询null值的操作方法
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" } } } }
注意:
null_value
需要和字段的 类型值 保持一致,比如上方的age
是integer
类型,那么null_value
的值就必须是integer类型
。null_value
不会修改_source
中的值[]
空数组是不会被null_value
替换的,因为[]
中不包含明确的null
null_value
可以修饰的数据类型有限,比如text
类型不可使用。
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}
- 数据中存在
name
和address
字段都不存在的 - 数据中存在
name
和address
字段 是 [] 的 - 数据中存在
name
和address
字段 是 [null] 的 - 数据中存在
name
和address
字段 都有值的
4、查询 name字段为null的数据
5、查询address不存在或值直接为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值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
java中LinkedBlockingQueue与ArrayBlockingQueue的异同
这篇文章主要介绍了java中LinkedBlockingQueue与ArrayBlockingQueue的异同,需要的朋友可以参考下2016-08-08Java如何解决发送Post请求报Stream closed问题
这篇文章主要介绍了Java如何解决发送Post请求报Stream closed问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06Hbase、elasticsearch整合中jar包冲突的问题解决
本篇文章主要介绍了Hbase、elasticsearch整合中jar包冲突的问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-12-12使用Spring处理x-www-form-urlencoded方式
这篇文章主要介绍了使用Spring处理x-www-form-urlencoded方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11Springboot3整合Mybatis-plus3.5.3报错问题解决
在日常学习springboot3相关的代码时,在使用 SpringBoot3 整合 MyBatisplus 时出现了一些问题,花了不少时间处理,这篇文章主要介绍了Springboot3整合Mybatis-plus3.5.3报错问题解决,需要的朋友可以参考下2023-11-11浅析Java常用API(Scanner,Random)匿名对象
这篇文章主要介绍了Java常用API(Scanner,Random)匿名对象,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-03-03
最新评论