如何在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替换的,因为[]中不包含明确的nullnull_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值的更多相关文章
- 如何在MySQL中查询每个分组的前几名【转】
问题 在工作中常会遇到将数据分组排序的问题,如在考试成绩中,找出每个班级的前五名等. 在orcale等数据库中可以使用partition语句来解决,但在mysql中就比较麻烦了.这次翻译的文章就是专门 ...
- SQL中的NULL值
除is [not] null之外,空值不满足任何查找条件.–如果null参与算术运算,则该算术表达式的值为null.–如果null参与比较运算,则结果可视为false.在SQL-92中可看成unkno ...
- sql 中的null值
1.包含null的表达式都为空 select salary*12+nvl(bonus,0) nvl是虑空函数 2. null值永远!=null select * from emp where bo ...
- java中,null值可以被强制转换为任何类型
java中,null值可以被强制转换为任何类型
- 参数中传Null值
参数中传Null值虽然不是一种优雅的方式,但有时候可以省时间.不过不推荐.
- linq 在查询表达式中处理 null 值
此示例显示如何在源集合中处理可能的 null 值. IEnumerable<T> 等对象集合可包含值为 null 的元素. 如果源集合为 null 或包含值为 null 的元素,并且查询不 ...
- SqlServer中的Null值空值问题
sql使用的是三值谓词逻辑,所以逻辑表达式返回的结果可以为True.False或者未知,在三值逻辑中返回True与不返回False并不完全一样, SQL对查询过滤条件的处理:接受TURE 拒绝FAL ...
- MySQL中order by中关于NULL值的排序问题
MySQL中order by 排序遇到NULL值的问题 MySQL数据库,在order by排序的时候,如果存在NULL值,那么NULL是最小的,ASC正序排序的话,NULL值是在最前面的. 如果我们 ...
- Java中的null值总结
自我总结,有什么不对或不到位的地方,请指出,感激不尽! 目的:熟练掌握java中null值出现的情况,避免NullPointerException 代码环境准备:需要引入junit;将代码packag ...
- 如何在mysql中查询每个分组的前几名
问题 在工作中常会遇到将数据分组排序的问题,如在考试成绩中,找出每个班级的前五名等. 在orcale等数据库中可以使用partition 语句来解决,但在MySQL中就比较麻烦了.这次翻译的文章就是 ...
随机推荐
- 题解 CF630L Cracking the Code
前言 为什么没有人暴力快速幂啊,Ta不香嘛/kel 题意 设读入为 \(abcde\) ,求 \(acedb^5\mod{10^5}\) 的结果. \(\sf {Solution}\) 显然暴力啊. ...
- 【lwip】10-ICMP协议&源码分析
目录 前言 10.1 ICMP简介 10.2 ICMP报文 10.2.1 ICMP报文格式 10.2.2 ICMP报文类型 10.2.3 ICMP报文固定首部字段意义 10.3 ICMP差错报告报文 ...
- Redis可视化管理工具-RedisDesktopManager
Windows客户端,访问Redis数据库并执行一些基本操作. 链接:https://pan.baidu.com/s/1OuGqIfbpGwglC-642rECbQ 提取码:m6uo
- Python的几种lambda排序方法
1.对单个变量进行排序 #lst = [[5,8],[5,3],[3,1]] lst.sort(key = lambda x : x[1]) #lst = [[3,1],[5,8],[5,3]] 以元 ...
- Java安全之CC2
前言 由于在2015年底commons-collections反序列化利⽤链被提出时,Apache Commons Collections有以下两个分⽀版本: commons-collections: ...
- [leetcode] 547. Number of Provinces
题目 There are n cities. Some of them are connected, while some are not. If city a is connected direct ...
- Java-数组工具类Arrays
java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作. toSting方法 public static String toString(数组):将参 ...
- 【经验分享】配置用户通过Console口登录设备示例
组网需求 当用户无法进行远程登录设备时,可通过Console口进行本地登录.缺省情况下,使用Console用户界面登录设备时只需要密码认证.为了防止非法用户登录设备,修改Console用户界面的认证方 ...
- phpexcel 小技巧
//设置填充的样式和背景色$objPHPExcel->getActiveSheet()->getStyle( 'A1:AU1')->getFill()->setFillType ...
- 如何在kali Linux上安装VMware Tools
作用: 1.让虚拟机和本地上的文件可以互传,直接拖动就可以实现转接 2.可在虚拟机上执行本地脚本 3.本地时钟与虚拟机同步 4........... 方法: 1.运行虚拟机 2.在上方菜单栏中点击安装 ...