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);
相关推荐
杀死那个蝈坦5 分钟前
Docker
java·docker·eclipse·tomcat·hibernate
a3158238066 分钟前
Android13隐藏某个App需要关注的源码文件
android·java·framework·launcher3·隐藏app
悟空码字13 分钟前
SpringBoot实现消息推送:让服务器学会“主动搭讪”
java·spring boot·后端
新华经济13 分钟前
正荣激光焊接机:破解中小型制造场景激光焊接精度与效率困局
大数据·人工智能·制造
嵌入式冰箱16 分钟前
“未来杯”2025第五届高校大数据挑战赛赛题【AB题】详细分析
大数据·数学建模
蒟蒻小袁19 分钟前
Hot100--找到字符串中所有字母异位词
java·算法·leetcode·面试
好好研究20 分钟前
Git命令
大数据·git·elasticsearch
传感器与混合集成电路20 分钟前
精准钻进,高温无阻:随钻测井定向探管如何赋能极限能源勘探
大数据·人工智能·能源
+VX:Fegn089529 分钟前
人力资源管理|基于springboot + vue人力资源管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计