ElasticSearch之BoolQuery
转:https://www.cnblogs.com/xiaocandou/p/8127371.html
Bool Query 用于组合多个叶子或复合查询子句的默认查询
must 相当于 与 & =
must not 相当于 非 ~ !=
should 相当于 或 | or
filter 过滤
boolQuery().must(termQuery("content", "test1"))
.must(termQuery("content", "test4"))
.mustNot(termQuery("content", "test2"))
.should(termQuery("content", "test3"))
.filter(termQuery("content", "test5"));private SearchRequest getSearchRequest(RequestType request) {
SearchRequest sr = new SearchRequest();
//指定索引名称,如未指定则会查询所有
sr.indices(ElasticSearchConst.XXX_INDEX);
sr.types(ElasticSearchConst.XXX_TYPE);
SearchSourceBuilder source = new SearchSourceBuilder();
BoolQueryBuilder bq = QueryBuilders.boolQuery();
getQueryBuilder(request, bq);
// from 从0开始,包含前后边界 实际是 <= >=
source.from(request.getRowStart());
source.size(request.getRowSize());
source.query(bq);
setSort(request, source);
sr.source(source);
return sr;
}
private void getQueryBuilder(RequestType request, BoolQueryBuilder bq) {
getOrderQueryBuilder(request, bq);
addPurchaseOrderQueryBuilder(request, bq);
}
/**
* 查询条件
*
* @param request
* @param bq
*/
private void getOrderQueryBuilder(RequestType request, BoolQueryBuilder bq) {
// termQuery 精确匹配,不分词 相当于 等于 =
//Type.childType 多层类型嵌套,具体索引结构,参考mapping
// GET yourindexname/_mapping
Mapping:
{
"yourindexname": {
"mappings": {
"type1": {
"properties": {
"childtype": {
"properties": {
"cedStatus": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
bq.must(QueryBuilders.termQuery("Type.childType", request.getOrderId()));
//rangeQuery 范围查询,最大范围不超过1w
bq.must(QueryBuilders.rangeQuery("Type.childType.departureDate")
.gte(DateUtil.toSqlTimeStamp(request.getDepartureDateStart().getTime()).getTime())
.lte(DateUtil.toSqlTimeStamp(request.getDepartureDateEnd().getTime()).getTime()));
//QueryBuilders.matchPhraseQuery 匹配查询,不分词,相当于 contains
//matchPhraseQuery 是直接以一个短语的形式查询,顺序无差,且连接在一起
pobq.must(QueryBuilders.matchPhraseQuery(
String.format("%s%s%s", preFix, i, ".vacationVBKPurchaseOrderBaseInfoDto.contactName"),
request.getContactName()));
ElasticSearch之BoolQuery相关推荐
- SQL to Elasticsearch java code
把Elasticsearch当成Database用,因为Elasticsearch不支持SQL,就需要把SQL转换成代码实现. 1.按某个field group by查询count SELECT fi ...
- SpringBoot 操作 ElasticSearch 详解(万字长文)
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:超级小豆丁 http://www.mydlq.club/ar ...
- Elasticsearch的javaAPI之query dsl-queries
Elasticsearch的javaAPI之query dsl-queries 和rest query dsl一样,elasticsearch提供了一个完整的Java query dsl. 查询建造者 ...
- elasticsearch 9300端口连接不上_SpringBoot2.x系列教程54--SpringBoot整合ElasticSearch方式一...
SpringBoot2.x系列教程54--NoSQL之SpringBoot整合ElasticSearch方式一 作者:一一哥 一. Elastic Search 1. Elastic Search简介 ...
- elasticsearch的集中常见操作
1.引入dependency <dependency><groupId>org.springframework.data</groupId><artifact ...
- Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询
运行环境:JDK 7 或 8,Maven 3.0+ 技术栈:SpringBoot 1.5+,ElasticSearch 2.3.2 本文提纲 一.ES 的使用场景 二.运行 springboot-el ...
- ElasticSearch的基本原理与用法
一.简介 ElasticSearch和Solr都是基于Lucene的搜索引擎,不过ElasticSearch天生支持分布式,而Solr是4.0版本后的SolrCloud才是分布式版本,Solr的分布式 ...
- 万字长文:详解 Spring Boot 中操作 ElasticSearch
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 超级小豆丁 来源 | http://www.m ...
- SpringBoot ElasticSearch 全文搜索
2019独角兽企业重金招聘Python工程师标准>>> 一.pom.xml配置 SpringBoot版本1.5.6https://blog.csdn.net/kingice1014/ ...
最新文章
- Python之向日志输出中添加上下文信息
- ERP已死,中台已凉,DDD称王!
- 第五章 Octave 教程-机器学习老师板书-斯坦福吴恩达教授
- 使用SMARTFORM字段参数设置解决SMARTFORM中数量、金额字段显示问题
- VMware快照管理器
- MIPI CSI-2学习
- java实现米和厘米比较好_java如何根据实际经、纬度和已知经、纬度做对比,计算出具体偏差米数。(以米为单位)...
- LINUX系列:Shell命令
- [LeetCode] 159. Longest Substring with At Most Two Distinct Characters 最多有两个不同字符的最长子串...
- matlab合成音乐原理,matlab 做音乐合成
- 关于 Java 字符串的全部,都在这份手册里了
- 百面机器学习—模型复杂度与模型的方差、偏差的关系
- paint.net ps证件照背景色
- macOS Big Sur 11.6.6 (20G624) 正式版 ISO、PKG、DMG、IPSW 下载
- EXCEL 合并同样格式的多个excel文件
- 一点点读懂regulator(三)
- MySQL从删库到跑路(0):序章
- Python如此神奇,让繁琐工作自动化 (文中含Python基础)
- win 10 亮度调节不能使用了
- 关于亚马逊人的财务自由
热门文章
- 苹果6严重卡顿_这样优化手机才能保持流畅,苹果安卓手机都适用
- Aspose.Words利用word样式写入标题及正文(.NET)
- 2022年做家居用品抓紧上车,亚马逊跨境电商新机会,不容错失
- 告别狗屎代码,请记住这 11 条编码秘诀!
- 日常生活小常识,你知道多少呢?
- 360度全景标定方法_一种用于360°全景泊车辅助系统的标定布及标定场地技术方案...
- 一键排版工具1.0.6使用说明
- 初入职场必备职业素养
- 大揭秘!亲历“恐怖”的阿里一面
- 港科资讯 | 香港科大(广州)-思谋科技联合实验室正式揭牌成立