问题背景
彻底搞明白ES中的exists方法到底能达到怎样的查询效果。
ES版本:6.3.1
场景1: 字段未曾设置 null_value
数据准备
- 当前数据库中存在了4条数据
- 其中 num的数据类型为 integer,不设置null_value
{"title":"测试0"}
{"title":"测试1","num":null}
{"title":"测试2","num":0}
{"title":"测试3","num":""}
查询场景1
查询条件: 查询存在num的数据
{ "query":{
"bool":{
"must":[{"exists":{"field":"num"}}]} }
}
返回数据
{"title":"测试2","num":0}
查询场景2
查询条件: 查询不存在num的数据
{ "query":{
"bool":{
"must_not":[{"exists":{"field":"num"}}]} }
}
返