转: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相关推荐

  1. SQL to Elasticsearch java code

    把Elasticsearch当成Database用,因为Elasticsearch不支持SQL,就需要把SQL转换成代码实现. 1.按某个field group by查询count SELECT fi ...

  2. SpringBoot 操作 ElasticSearch 详解(万字长文)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:超级小豆丁 http://www.mydlq.club/ar ...

  3. Elasticsearch的javaAPI之query dsl-queries

    Elasticsearch的javaAPI之query dsl-queries 和rest query dsl一样,elasticsearch提供了一个完整的Java query dsl. 查询建造者 ...

  4. elasticsearch 9300端口连接不上_SpringBoot2.x系列教程54--SpringBoot整合ElasticSearch方式一...

    SpringBoot2.x系列教程54--NoSQL之SpringBoot整合ElasticSearch方式一 作者:一一哥 一. Elastic Search 1. Elastic Search简介 ...

  5. elasticsearch的集中常见操作

    1.引入dependency <dependency><groupId>org.springframework.data</groupId><artifact ...

  6. Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询

    运行环境:JDK 7 或 8,Maven 3.0+ 技术栈:SpringBoot 1.5+,ElasticSearch 2.3.2 本文提纲 一.ES 的使用场景 二.运行 springboot-el ...

  7. ElasticSearch的基本原理与用法

    一.简介 ElasticSearch和Solr都是基于Lucene的搜索引擎,不过ElasticSearch天生支持分布式,而Solr是4.0版本后的SolrCloud才是分布式版本,Solr的分布式 ...

  8. 万字长文:详解 Spring Boot 中操作 ElasticSearch

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 超级小豆丁 来源 | http://www.m ...

  9. SpringBoot ElasticSearch 全文搜索

    2019独角兽企业重金招聘Python工程师标准>>> 一.pom.xml配置 SpringBoot版本1.5.6https://blog.csdn.net/kingice1014/ ...

最新文章

  1. Python之向日志输出中添加上下文信息
  2. ERP已死,中台已凉,DDD称王!
  3. 第五章 Octave 教程-机器学习老师板书-斯坦福吴恩达教授
  4. 使用SMARTFORM字段参数设置解决SMARTFORM中数量、金额字段显示问题
  5. VMware快照管理器
  6. MIPI CSI-2学习
  7. java实现米和厘米比较好_java如何根据实际经、纬度和已知经、纬度做对比,计算出具体偏差米数。(以米为单位)...
  8. LINUX系列:Shell命令
  9. [LeetCode] 159. Longest Substring with At Most Two Distinct Characters 最多有两个不同字符的最长子串...
  10. matlab合成音乐原理,matlab 做音乐合成
  11. 关于 Java 字符串的全部,都在这份手册里了
  12. 百面机器学习—模型复杂度与模型的方差、偏差的关系
  13. paint.net ps证件照背景色
  14. macOS Big Sur 11.6.6 (20G624) 正式版 ISO、PKG、DMG、IPSW 下载
  15. EXCEL 合并同样格式的多个excel文件
  16. 一点点读懂regulator(三)
  17. MySQL从删库到跑路(0):序章
  18. Python如此神奇,让繁琐工作自动化 (文中含Python基础)
  19. win 10 亮度调节不能使用了
  20. 关于亚马逊人的财务自由

热门文章

  1. 苹果6严重卡顿_这样优化手机才能保持流畅,苹果安卓手机都适用
  2. Aspose.Words利用word样式写入标题及正文(.NET)
  3. 2022年做家居用品抓紧上车,亚马逊跨境电商新机会,不容错失
  4. 告别狗屎代码,请记住这 11 条编码秘诀!
  5. 日常生活小常识,你知道多少呢?
  6. 360度全景标定方法_一种用于360°全景泊车辅助系统的标定布及标定场地技术方案...
  7. 一键排版工具1.0.6使用说明
  8. 初入职场必备职业素养
  9. 大揭秘!亲历“恐怖”的阿里一面
  10. 港科资讯 | 香港科大(广州)-思谋科技联合实验室正式揭牌成立