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);
相关推荐
星月IWJ13 小时前
领域驱动设计学习
java·学习·设计模式
毕设源码-郭学长13 小时前
【开题答辩全过程】以 基于ssm的企业进销存管理系统的设计与实现为例,包含答辩的问题和答案
java
hg011813 小时前
中企助力莫桑比克纳卡拉走廊物流体系全面提升
大数据
外参财观13 小时前
会员制大考:盒马交卷离场,山姆答题艰难
大数据·人工智能
张人玉13 小时前
大数据hadoop系列——在ubuntu上安装HBase 伪分布式
大数据·hadoop·分布式·hbase
镜花水月linyi13 小时前
1.5w字ReentrantLock 深度解析
java·后端·程序员
程序员西西13 小时前
Spring Boot3 分页操作全解析:从基础到实战
java·后端·程序员
Arva .13 小时前
介绍一下你知道的锁
大数据
Boop_wu13 小时前
[Java EE] 网络原理(1)
java·网络·java-ee
Sunsets_Red13 小时前
二项式定理
java·c++·python·算法·数学建模·c#