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);
相关推荐
Java小生不才23 分钟前
spring AI文生图
java·人工智能·spring ai
苍煜29 分钟前
ThreadPoolExecutor线程池终极全解:同步异步判定+SpringBoot生产实战
java·开发语言·spring boot
c++之路1 小时前
C++ 动态内存
java·jvm·c++
2301_800976935 小时前
数据库的基本操作后续
java·数据库·sql
SECS/GEM5 小时前
SECS/GEM如何实现越南现场自定义消息
java·服务器·数据库
橘颂TA5 小时前
【Linux】读写锁
大数据·linux·开发语言·c++·读写锁
lv__pf6 小时前
集合框架1
java·开发语言
SelectDB6 小时前
Apache Doris 4.1:面向 AI & Search 的统一数据存储与检索底座
大数据·数据库·数据分析
Hui Baby6 小时前
java抠图
java·开发语言