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);
相关推荐
guslegend18 小时前
第2章:Linux服务器-Docker安装
java
5***262218 小时前
【SpringBoot】SpringBoot中分页插件(PageHelper)的使用
java·spring boot·后端
DanB2418 小时前
Java(多线程)
java·开发语言·python
O***p60418 小时前
Java在分布式中的Archaius
java·开发语言·分布式
在繁华处18 小时前
JAVA实战:文件管理系统1.0
java·开发语言·前端
算法与编程之美18 小时前
Java数组动态扩容
java·开发语言·python·算法
曹牧18 小时前
Java: Json的键值双引号
java·chrome·json
有一个好名字18 小时前
Spring AI ——Java开发者的AI集成神器
java·人工智能·spring
WordPress学习笔记18 小时前
专业建外贸网站公司推荐
大数据·前端·人工智能
i***683218 小时前
Spring Boot--@PathVariable、@RequestParam、@RequestBody
java·spring boot·后端