Elasticsearch同时使用should和must

问题及解决方法

must和should组合查询,should失效。使用must嵌套查询,将should组成的bool查询包含在其中一个must查询中。

SearchRequest request = new SearchRequest();
request.indices("function_log");SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
if (StringUtils.hasText(schoolName)) {boolQueryBuilder.must(QueryBuilders.termQuery("schoolName.keyword", schoolName));
}
if (StringUtils.hasText(typeFunction)) {boolQueryBuilder.must(QueryBuilders.termQuery("typeFunction.keyword", typeFunction));
}
if (StringUtils.hasText(startTime) && StringUtils.hasText(endTime)) {boolQueryBuilder.must(QueryBuilders.rangeQuery("createDate").gte(startTime + "T00:00:00.000Z").lte(endTime + "T23:59:59.000Z"));
}
BoolQueryBuilder shouldQuery = QueryBuilders.boolQuery();
shouldQuery.should().add(QueryBuilders.termQuery("description.keyword","查询学生信息表"));
shouldQuery.should().add(QueryBuilders.termQuery("description.keyword","获取学校访客数据"));
boolQueryBuilder.must(shouldQuery);sourceBuilder.query(boolQueryBuilder);
request.source(sourceBuilder);
System.out.println(sourceBuilder.toString());

在这里插入图片描述

GET /function_log/_search
{"query": {"bool": {"must": [{"term": {"schoolName.keyword": {"value": "测试学校","boost": 1}}},{"term": {"typeFunction.keyword": {"value": "教师端功能","boost": 1}}},{"range": {"createDate": {"from": "2023-08-01T00:00:00.000Z","to": "2023-08-07T23:59:59.000Z","include_lower": true,"include_upper": true,"boost": 1}}},{"bool": {"should": [{"term": {"description.keyword": {"value": "查询学生信息表","boost": 1}}},{"term": {"description.keyword": {"value": "获取学校访客数据","boost": 1}}}],"adjust_pure_negative": true,"boost": 1}}],"adjust_pure_negative": true,"boost": 1}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/61511.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MFC第二十九天 CView类的分支(以及其派生类的功能)、MFC六大关键技术

文章目录 CView类的分支CEditViewCHtmlViewMainFrm.h CMainFrame 类的接口CMainView .h CListCtrl与CListView的创建原理 CTreeViewCTreeCtrl类简介CTreeCtrl类的原理以及常用功能 MFC六大关键技术视图和带分割栏的框架开发与消息路由CLeftView.cppCRightView.hCRightView.cppC…

分布式链路追踪概述

分布式链路追踪概述 文章目录 分布式链路追踪概述1.分布式链路追踪概述1.1.什么是 Tracing1.2.为什么需要Distributed Tracing 2.Google Dapper2.1.Dapper的分布式跟踪2.1.1.跟踪树和span2.1.2.Annotation2.1.3.采样率 3.OpenTracing3.1.发展历史3.2.数据模型 4.java探针技术-j…

现代C++中的从头开始深度学习【2/8】:张量编程

一、说明 初学者文本:此文本需要入门级编程背景和对机器学习的基本了解。张量是在深度学习算法中表示数据的主要方式。它们广泛用于在算法执行期间实现输入、输出、参数和内部状态。 在这个故事中,我们将学习如何使用特征张量 API 来开发我们的C算法。具…

Linux6.33 Kubernetes kubectl详解

文章目录 计算机系统5G云计算第三章 LINUX Kubernetes kubectl详解一、陈述式资源管理方法1.基本信息查看2.项目的生命周期:创建-->发布-->更新-->回滚-->删除 二、声明式管理方法 计算机系统 5G云计算 第三章 LINUX Kubernetes kubectl详解 一、陈述…

Ubuntu系统重置 root 用户密码

文章目录 前言Ubuntu 系统重置 root 用户密码编辑 grub 菜单修改 grub 配置重设 root 用户密码前言 虚拟机用的时间久了登录系统的时候发现 root 密码忘记了, 所以在这里写一篇文章记录一下Ubuntu 系统下 root 密码忘记的解决方案,经过测试, 理论上来说这个方法适用于 Ubuntu …

『PostgreSQL』在 PostgreSQL中创建只读权限和读写权限的账号

📣读完这篇文章里你能收获到 理解在 PostgreSQL 数据库中创建账号的重要性以及如何进行账号管理掌握在 PostgreSQL 中创建具有只读权限和读写权限的账号的步骤和方法学会使用 SQL 命令来创建账号、为账号分配适当的权限以及控制账号对数据库的访问级别了解如何确保…

【C语言】初阶指针详解

目录 一、什么是指针? 1.指针变量 2.指针大小 二、指针类型 三、野指针 四、指针运算 1.指针-整数 2.指针-指针 3.指针的关系运算 五、指针和数组 六、二级指针 七、指针数组 一、什么是指针? 指针是内存中一个最小单元的编号,…

关于APP备案、小程序备案的问题,如何备案?

近日,工信部发布了关于开展移动互联网应用程序备案工作的通知。为落实相关法律法规要求,促进互联网行业规范健康发展,进一步做好移动互联网信息服务管理,现组织开展移动互联网应用程序(以下简称 APP)备案工…

【Echart地图】jQuery+html5基于echarts.js中国地图点击弹出下级城市地图(附完整源码下载)

文章目录 写在前面涉及知识点实现效果1、实现中国地图板块1.1创建dom元素1.2实现地图渲染1.3点击地图进入城市及返回 2、源码分享2.1 百度网盘2.2 123云盘2.3 邮箱留言 总结 写在前面 这篇文章其实我主要是之前留下的一个心结,依稀记得之前做了一个大屏项目的时候&…

搞定libstdc++.so.6 version GLIBCXX_3.4.21 not found

一、问题: 今天在安装whisper的时候,突然间报了这样一个错误: OSError: Could not load shared object file: libllvmlite.so Errors were: [OSError("/lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by /opt/con…

前端技术Vue学习笔记--003

前端技术Vue学习笔记 文章目录 前端技术Vue学习笔记1、Vue生命周期和生命周期的四个阶段1.1、Vue生命周期1.2、生命周期的四个阶段1.3、Vue生命周期函数<font colorred>&#xff08;钩子函数&#xff09; 2、小黑记账本&#xff08;案例&#xff09;3、工程化开发和脚手架…

风丘科技将亮相 EVM ASIA 2023

风丘科技将首次亮相 EVM ASIA 2023 WINDHILL will debut EVM ASIA 2023 ——可持续移动的未来 —The Future of SUSTAINABLE Mobility EVM ASIA 2023是亚太地区电气化的国际性展会&#xff0c;专注于新能源汽车、充电技术及汽车零件制造等。展会致力于促进包括充电站、交通…