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);
相关推荐
敲敲千反田11 分钟前
Spring 相关
java·后端·spring
@小柯555m17 分钟前
Java八股刷题
java·开发语言·八股
时空自由民.19 分钟前
三个按键的,短按1S,长按3S,单击,双击,三击的检测程序
大数据·数据库·计算机网络·算法
bzmK1DTbd24 分钟前
Java在人工智能:TensorFlow Java API的使用
java·人工智能·tensorflow
小碗羊肉28 分钟前
【JavaWeb | 第四篇】分层解耦
java·后端·servlet
EM-FF32 分钟前
idea快捷键
java·ide·intellij-idea
薪火铺子39 分钟前
Redis 分布式锁与 Redisson 原理深度解析
java·redis·分布式·后端
胡楚昊40 分钟前
BUU WEB之旅(1)
java·数据库·mybatis
GEO索引未来43 分钟前
大胆预测:国家会这样对GEO行业进行监管
大数据·人工智能·gpt·ai·chatgpt
牢七1 小时前
链条合集整理
java·开发语言