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);
相关推荐
青云交6 小时前
Java 大视界 -- Java 大数据在智能医疗电子病历数据分析与临床决策支持中的应用
java·flink·数据清洗·电子病历·智能医疗·医疗信息化·临床决策
物流可信数据空间7 小时前
可信数据空间+数据入表:华储数据助力数据交易所破解困局,迈向规模流通
大数据
用户0304805912637 小时前
【Spring进阶】深入理解 FactoryBean:定制化 Bean 的秘密武器
java
BBB努力学习程序设计7 小时前
深入理解 Java 多态:解锁面向对象编程的灵活性
java
JavaGuide7 小时前
京东零售后端一二面,附参考答案!
java·后端
用户0304805912637 小时前
Spring Validation教程
java
Hello.Reader7 小时前
DTO / VO / BO / Entity 分层到底怎么用?
java·分层
云梦谭7 小时前
AI 生成的FreeSWITCH 呼出流程深度分析freeswitch-1.10.12.-release
java·前端·php
随机昵称_1234567 小时前
RSA私钥解密乱码问题
java·非对称加密
龙亘川7 小时前
【课程2.4】开发环境搭建:K8s集群部署、芋道框架集成、ThingsBoard对接
java·容器·kubernetes·智慧城市·智慧城市一网统管 ai 平台