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);
相关推荐
一嘴一个橘子12 小时前
mybatis - 动态语句、批量注册mapper、分页插件
java
组合缺一12 小时前
Json Dom 怎么玩转?
java·json·dom·snack4
危险、13 小时前
一套提升 Spring Boot 项目的高并发、高可用能力的 Cursor 专用提示词
java·spring boot·提示词
kaico201813 小时前
JDK11新特性
java
钊兵13 小时前
java实现GeoJSON地理信息对经纬度点的匹配
java·开发语言
jiayong2313 小时前
Tomcat性能优化面试题
java·性能优化·tomcat
pingao14137813 小时前
太阳总辐射传感器:能源、气象领域的关键测量工具
大数据·能源
秋刀鱼程序编程13 小时前
Java基础入门(五)----面向对象(上)
java·开发语言
纪莫13 小时前
技术面:MySQL篇(InnoDB的锁机制)
java·数据库·java面试⑧股
Remember_99313 小时前
【LeetCode精选算法】滑动窗口专题二
java·开发语言·数据结构·算法·leetcode