需求

查询考试成绩是60分90分女生

所以查询条件应该这么写 sex == '女' && ( score == 60 || score ==90 );

先看下bool的语法

{"query": {"bool": {"must": [{},...],  //相当于AND"must_not": [{},...],  //相当于NOT"should": [{},...]  //相当于OR}}
}

在ES中的实现

方式一:

在bool查询的must 中再嵌套一层bool来做should过滤。

GET stu/_search
{"query": {"bool": {"must": [{"term": {"sex": {"value": "女"}}},{"bool": {"should": [{"term": {"score": {"value": "60"}}},{"term": {"score": {"value": "90"}}}]}}]}}
}

方式二:

使用 minimum_should_match 选项,至少匹配一项should子句。

GET stu/_search
{
   "query": {
      "bool": {
         "must": [
            {"term": {"sex": {"value": "女"}}}
         ],
         "should": [
            {"term": {"score": {"value": "60"}}},
            {"term": {"score": {"value": "90"}}}
         ], 
         "minimum_should_match": 1
      }
   }
}

注意:

must 和 should 的条件并列组合时,参数 minimum_should_match 默认值为0 (即 should 的条件可以都不满足)。这也是 must 和 should 组合查询时,should 失效的原因。

should下有多个条件时,我们必须设置 minimum_should_match = 1 才能实现 操作。

Elasticsearch 中 bool组合查询(must 和 should 组合)相关推荐

  1. Elasticsearch中的Term查询和全文查询

    Elasticsearch中的Term查询和全文查询 前言 Term 查询 exists 查询 fuzzy 查询 ids 查询 prefix 查询 range 查询 regexp 查询 term 查询 ...

  2. ElasticSearch中的简单查询

    前言 最近修改项目,又看了下ElasticSearch中的搜索,所以简单整理一下其中的查询语句等.都是比较基础的.PS,好久没写博客了..大概就是因为懒吧.闲言少叙书归正传. 查询示例 http:// ...

  3. es java聚合查询只有10_关于在elasticSearch中使用聚合查询后只显示10个bucket的问题...

    先看下面es查询语句 { "size": 0, "aggs" : { "all_articleId" : { "terms&quo ...

  4. Elasticsearch 4: 相关性检索和组合查询

    目录 1. 相关性评分 2. 相关度模型 2.1 布尔模型 2.2 向量空间模型 2.3 概率模型 2.4 语言模型 3. TF/IDF 4. BM25 4.1 词频饱和度 4.2 长度归一化 5. ...

  5. ElasticSearch实现高亮、范围查询和多条件组合查询(java和kibana)

    ElasticSearch客户端配置参考之前的博客 1.高亮 高亮的本质其实是将搜索结果中需要高亮的字段进行替换 public List<Map<String,Object>> ...

  6. 在Elasticsearch中查询Term Vectors词条向量信息

    这篇文章有点深度,可能需要一些Lucene或者全文检索的背景.由于我也很久没有看过Lucene了,有些地方理解的不对还请多多指正. 更多内容还请参考整理的ELK教程 关于Term Vectors 额, ...

  7. 【Elasticsearch】在Elasticsearch中查询Term Vectors词条向量信息

    1.概述 转载:https://www.cnblogs.com/xing901022/p/5348737.html 关于Term Vectors 额,对于这个专业词汇,暂且就叫做词条向量吧,因为实在想 ...

  8. Elasticsearch(es) 查询语句语法详解

    Elasticsearch 查询语句采用基于 RESTful 风格的接口封装成 JSON 格式的对象,称之为 Query DSL.Elasticsearch 查询分类大致分为全文查询.词项查询.复合查 ...

  9. 跟乐乐学ES!(三)ElasticSearch 批量操作与高级查询

    上一篇文章:跟乐乐学ES!(二)ElasticSearch基础. 下一篇文章:跟乐乐学ES!(四) java中ElasticSearch客户端的使用. 批量操作 有些增删改查操作是可以进行批量操作的, ...

最新文章

  1. h264和h265多维度区别
  2. 【电商福利】双十二优惠福利专场
  3. [architecture]-ARMV8的The current Program Counter (PC)介绍
  4. 【es6】谈谈Promise
  5. SlopOne推荐算法
  6. Qt数字与字符串之间的相互转换
  7. [luoguP1095] 守望者的逃离(DP)
  8. CMMI与Agile敏捷开发比较之一:两者的本质区别
  9. 不要相信程序员在加班时间写的代码
  10. TortoiseSVN - Download下载 - 1.5.4
  11. 【深度学习】卷积神经网络原理
  12. C语言 逻辑运算符及其优先级
  13. RTX3080 Ti 怎么样 RTX3080 Ti性能相当于什么水平
  14. 高德地图android 缓存,高德地图定位不刷新,感觉有缓存
  15. 验证码——python去除干扰线
  16. iOS与unity交互、opencv 草稿
  17. Windows 10家庭版启用远程桌面的方法
  18. Oracle 查询工具 在WIN7 64位下安装PLSQL
  19. GCJ-02火星坐标系、BD-09百度坐标系和WGS-84坐标系转换
  20. sql、DB、DBMS分别是什么,他们之间什么关系?

热门文章

  1. 经过前面几天的学习已经把对象的三大特性之一封装学完了现在开始学习接下来的继承和多态
  2. 专用计算机数控编程软件,数控车床编程app
  3. 如何申请游戏支付接口(三方支付)
  4. 同时查询多个快递单号物流单号查询
  5. 高盛表示将放弃建立加密货币交易部门的计划
  6. 各向异性滤波算法+数学模型分析
  7. 乐融Letv超5体验:超薄+护眼+科技关怀家庭生活
  8. android 之 ActionBar
  9. 爬虫笔记(一)——第一个爬虫
  10. 压力测试工具Apache JMeter:11:搭建容器化分布式测试环境