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