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);
相关推荐
zzb15801 天前
RAG from Scratch-优化-query
java·数据库·人工智能·后端·spring·mybatis
V搜xhliang02461 天前
机器人建模(URDF)与仿真配置
大数据·人工智能·深度学习·机器学习·自然语言处理·机器人
房产中介行业研习社1 天前
2026年3月哪些房源管理系统功能全
大数据·运维·人工智能
wuqingshun3141591 天前
如何停止一个正在退出的线程
java·开发语言·jvm
Barkamin1 天前
队列的实现(Java)
java·开发语言
玄微云1 天前
2026年通用软件难适配,垂直店务系统反而更省心
大数据·云计算·软件需求
骇客野人1 天前
自己手搓磁盘清理工具(JAVA版)
java·开发语言
J2虾虾1 天前
在SpringBoot中使用Druid
java·spring boot·后端·druid
清风徐来QCQ1 天前
Java笔试总结一
java·开发语言
Elastic 中国社区官方博客1 天前
Elastic 为什么捐赠其 OpenTelemetry PHP 发行版
大数据·开发语言·elasticsearch·搜索引擎·信息可视化·全文检索·php