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);
相关推荐
Jul1en_7 分钟前
Claude 迁移 Codex 工作流迁移与更新
java·服务器·前端·后端·ai编程
未若君雅裁24 分钟前
Spring Statemachine 实战入门:从零实现一个订单状态流转 Demo
java·spring·状态模式
Justice Young24 分钟前
Flink第四章:运行架构
大数据·flink
早日退休!!!26 分钟前
操作系统锁
java·开发语言
研究点啥好呢29 分钟前
快手多模态算法工程师面试题精选:10道高频考题+答案解析
java·开发语言·人工智能·ai·面试·笔试
遗憾随她而去.31 分钟前
Java学习(一)
java·开发语言·学习
陌路物是人非41 分钟前
记一个controller入参为null的奇怪问题
java·开发语言
陈天伟教授43 分钟前
AI 未来趋势:产业应用范式之变
大数据·开发语言·人工智能·gpt
小瓦码J码1 小时前
Spring boot 如何自定义加密解密数据库连接配置
java
XiYang-DING1 小时前
【Java EE】JUC的常见类(Callable、ReentrantLock、Semaphore和CountDownLatch )
java·java-ee