ES的“或“查询

场景:需要查询ES中userId为""或者userId字段不存在的数据

dsl语句:

java 复制代码
{
	"from": 0,
	"size": 30,
	"query": {
		"bool": {
			"should": [{
				"term": {
					"userId": {
						"value": "",
						"boost": 1.0
					}
				}
			},
			{
				"bool": {
					"must_not": [{
						"exists": {
							"field": "userId",
							"boost": 1.0
						}
					}],
					"adjust_pure_negative": true,
					"boost": 1.0
				}
			}],
			"adjust_pure_negative": true,
			"minimum_should_match": "1",
			"boost": 1.0
		}
	},
	"sort": [{
		"eventTime": {
			"order": "desc"
		}
	}]
}

java代码:

java 复制代码
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
queryBuilder.should(new TermQueryBuilder("userId", ""));
queryBuilder.should(new BoolQueryBuilder().mustNot(new ExistsQueryBuilder("userId")));
//should中的条件满足任一条
queryBuilder.minimumShouldMatch(1);
相关推荐
两个蝴蝶飞4 小时前
Java量化系列(四):实现自选股票维护功能
java·经验分享
短剑重铸之日5 小时前
7天读懂MySQL|Day 5:执行引擎与SQL优化
java·数据库·sql·mysql·架构
酒九鸠玖6 小时前
Java--多线程
java
Dreamboat-L6 小时前
云服务器上部署nginx
java·服务器·nginx
长安er6 小时前
LeetCode215/347/295 堆相关理论与题目
java·数据结构·算法·leetcode·
数据猿6 小时前
【金猿CIO展】上海虹迪物流科技有限公司董事长兼CIO张鹏飞:聚焦数字化核心——物流供应链的的智慧演进之路
大数据·科技
deepdata_cn6 小时前
“深数据” vs “大数据”
大数据·bigdata·深数据·deepdata
cici158747 小时前
C#实现三菱PLC通信
java·网络·c#
k***92168 小时前
【C++】继承和多态扩展学习
java·c++·学习
weixin_440730508 小时前
java结构语句学习
java·开发语言·学习