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);
相关推荐
阿坤带你走近大数据5 小时前
Java中的JVM、类加载记住、多线程、性能优化的概念
java·jvm·性能优化
鱼鳞_5 小时前
苍穹外卖-Day04
java
未若君雅裁5 小时前
Spring Boot 自动配置原理与常用注解
java·spring boot·后端
Klong.k5 小时前
如何避免Bean的线程安全问题
java·开发语言
basketball6165 小时前
C++ 单例模式完全指南:从饿汉式到现代 C++ 的最佳实践
java·c++·单例模式
黎阳之光5 小时前
视听融合新范式!黎阳之光打破视觉边界,声影协同赋能全域智慧管控
大数据·人工智能·物联网·算法·数字孪生
iiiiyu6 小时前
集合进阶(Map集合)
java·大数据·开发语言·数据结构·编程语言
塔能物联运维6 小时前
存量机房降本增效:两相液冷技术解锁全生命周期成本优化密码
大数据·人工智能
小江的记录本6 小时前
【Java基础】核心关键字:final、static、volatile、synchronized、transient(附《思维导图》+《面试高频考点清单》)
java·前端·数据结构·后端·ai·面试·ai编程
tongluowan0076 小时前
Java 内存模型(JMM)- 内存屏障
java·内存模型·内存屏障