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);
相关推荐
zskj_zhyl11 分钟前
科技助老与智慧养老的国家级政策与地方实践探索
大数据·人工智能·科技
避避风港16 分钟前
Java 抽象类
java·开发语言·python
初学小白...19 分钟前
JVM入门知识点
java·服务器·jvm
YangYang9YangYan19 分钟前
职业本科发展路径与规划指南
大数据·人工智能·学习·数据分析
C++chaofan27 分钟前
基于session实现短信登录
java·spring boot·redis·mybatis·拦截器·session
摇滚侠28 分钟前
idea 刷新maven,提示java.lang.RuntimeException: java.lang.OutOfMemoryError
java·maven·intellij-idea
果壳~38 分钟前
【Java】使用国密2,3,4.仿照https 统一请求响应加解密
java·https
N 年 后1 小时前
单独Docker部署和Docker Compose部署
java·docker·容器
lkbhua莱克瓦241 小时前
Java练习——数组练习
java·开发语言·笔记·github·学习方法
V_156560272191 小时前
2025年蚌埠市“三首产品”、市级服务型制造示范、市级企业技术中心等5个项目认定申报指南大全
大数据·人工智能·制造