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);
相关推荐
程序员老邢几秒前
【技术底稿 15】SpringBoot 异步文件上传实战:多线程池隔离 + 失败重试 + 实时状态推送
java·经验分享·spring boot·后端·程序人生·spring
ApacheSeaTunnel7 分钟前
Apache SeaTunnel Zeta 为什么能做到“又快又稳”?
大数据·开源·数据集成·seatunnel·技术分享·数据同步
菠萝地亚狂想曲25 分钟前
Zephyr_01, environment
android·java·javascript
Arya_aa29 分钟前
HTTP与Tmocat服务器与SpringMVC
java·spring boot
YDS82936 分钟前
大营销平台 —— 抽奖规则决策树
java·springboot·ddd
酿情师1 小时前
Shiro 反序列化漏洞原理(小白零基础详解)
java·web安全·网络安全
少许极端1 小时前
算法奇妙屋(四十五)-CCPC备战之旅-1
java·开发语言·算法
songcream11 小时前
Spring Boot资料整理
java·spring boot·后端
源码宝1 小时前
新一代医院信息系统云HIS,多租户共享,java版HIS+EMR+LIS全套源码
java·大数据·源码·云his·his系统·源代码·医院信息系统
iiiiyu1 小时前
面向对象高级接口的综合案例
java·开发语言·数据结构·编程语言