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);
相关推荐
行百里er3 分钟前
代码跑得慢?让Spring的StopWatch告诉你真相!
java·后端·github
又是忙碌的一天8 分钟前
SpringMVC响应
java·服务器·数据库
焦耳热科技前沿9 分钟前
西华大学Adv. Sci.:超高温焦耳热冲击制备拓扑缺陷碳,用于催化碳纳米管可控生长
大数据·人工智能·能源·材料工程·电池
万物皆字节16 分钟前
Spring Cloud Gateway 启动流程源码分析
java·开发语言·spring boot
W001hhh18 分钟前
260110
java·数据库
stillaliveQEJ25 分钟前
【JavaEE】Spring IoC(一)
java·spring·java-ee
a程序小傲34 分钟前
得物Java面试被问:方法句柄(MethodHandle)与反射的性能对比和底层区别
java·开发语言·spring boot·后端·python·面试·职场和发展
酒书38 分钟前
对接阿里云号码认证实现运营商一键登录
java·阿里云
独自破碎E41 分钟前
比较版本号
java·开发语言
故乡de云43 分钟前
Google Cloud与AWS大数据AI服务对比:2026年企业选型指南
大数据·人工智能·aws