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);
相关推荐
jiaguangqingpanda26 分钟前
Day28-20260124
java·数据结构·算法
G皮T27 分钟前
【Elasticsearch】OpenDistro Security 中 backend_roles 的设计哲学(含实战验证)
大数据·elasticsearch·kibana·权限管理·role·opensearch·backend role
Java程序员威哥27 分钟前
SpringBoot2.x与3.x自动配置注册差异深度解析:从原理到迁移实战
java·大数据·开发语言·hive·hadoop·spring boot·后端
cheems952732 分钟前
【javaEE】文件IO
java
微露清风1 小时前
系统性学习Linux-第一讲-Linux基础指令
java·linux·学习
tqs_123451 小时前
tcc中的空回滚和悬挂问题
java·数据库
dixiuapp1 小时前
校园后勤管理平台,如何选择与规划
大数据·人工智能·工单管理系统·院校工单管理系统·物业报修系统
MX_93591 小时前
以配置非自定义bean来演示bean的实例化方式
java·开发语言·后端
hg01181 小时前
埃塞俄比亚启动建设非洲最大机场
大数据
哪里不会点哪里.1 小时前
Spring 事务机制详解:原理、传播行为与失效场景
java·数据库·spring