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);
相关推荐
摇滚侠几秒前
Mybatis 面试题 真正的 offer 偏方 Java 基础 Java 高级
java·开发语言·mybatis
多年小白1 分钟前
A股算力租赁板块 深度分析
大数据·人工智能·ai·金融·区块链
淘矿人2 分钟前
Claude助力前端开发
java·数据库·git·python·sql·spring·database
砍材农夫4 分钟前
物联网 基于netty心跳和ack机制
java·物联网·netty
小仙女的小稀罕9 分钟前
适合企业行政开部门会议用的,会议同步行动项整理方法
大数据·人工智能
happymaker062610 分钟前
Spring学习日记——DAY07(SpringMVC)
java·学习·spring
糖果店的幽灵19 分钟前
【股票基础】股票指标概念
大数据
Devin~Y20 分钟前
大厂Java面试实录:Spring Boot/Cloud + Redis + Kafka + JVM + RAG(Spring AI)三轮追问(小Y翻车版)
java·jvm·spring boot·redis·spring cloud·kafka·mybatis
JAVA面经实录91722 分钟前
Java 并发工具类
java·大数据·开发语言
1892280486122 分钟前
NV266固态MT29F32T08GSLBHL8-36QMES:B
大数据·服务器·人工智能·科技·缓存