ElasticSearch语句中must,must_not,should组合关系,作者有验证脚本(ES为8版本,使用Kibana运行语句)

文章目录

一、单个使用

  • must(且):数组里面的条件都要满足,该条数据才被选择,所有的条件为且的关系
  • must_not(或,然后取反):数组里面的条件满足其中一个,该条数据则不被选择
  • should(或):数组里面的条件满足其中一个,该条数据被选择

二、must和must_not组合(A-B)

  • 满足must的数据减去满足must_not的数据则是最终结果

三、must和should组合(A)

  • 满足must的数据
  • should用来打分(字段为:_score ),影响返回排序
  • 满足should条件的数据分值会更高

四、should和must_not组合(A-B)

  • 满足should的数据减去满足must_not的数据则是最终结果

五、must和should和must_not组合(A-C)

  • 满足must的数据减去满足must_not的数据则是最终结果
  • should用来打分,影响返回排序
  • 满足should条件的数据分值会更高

六、验证脚本,执行之后自行观察结果(price字段用来测试)即可理解

  • 初始化数据
txt 复制代码
POST mystore/_bulk
{"index":{"_id":1}}
{"price":10,"productID":"XHDK-A-1293-#fJ3"}
{"index":{"_id":2}}
{"price":20,"productID":"XHDK-A-1293-#f20"}
{"index":{"_id":3}}
{"price":30,"productID":"JODL-X-1937-#pV7"}
{"index":{"_id":4}}
{"price":40,"productID":"QQPX-R-3956-#aD8"}
{"index":{"_id":5}}
{"price":50,"productID":"KDKE-B-9947-#kL5"}
{"index":{"_id":6}}
{"price":60,"productID":"KDKE-B-9947-#kL5"}
{"index":{"_id":7}}
{"price":70,"productID":"JODL-X-1937-#pV7"}
{"index":{"_id":8}}
{"price":80,"productID":"JODL-X-1937-#pV7"}
  • must和must_not组合
txt 复制代码
GET mystore/_search
{
  "query": {
    "bool": {
      "must": [{"range": {"price": {"gte": 20,"lte": 50}}}],
      "must_not": [{"match": {"price": "40"}}]}
  }
}
  • must和should组合
txt 复制代码
GET mystore/_search
{
  "query": {
    "bool": {
      "must": [{"range": {"price": {"gte": 20,"lte": 50}}}],
      "should": [{"range": {"price": {"gte": 40,"lte": 60}}}]
    }
  }
}
  • should和must_not组合
txt 复制代码
GET mystore/_search
{
  "query": {
    "bool": {
      "should": [{"range": {"price": {"gte": 40,"lte": 60}}}],
      "must_not": [{"match": {"price": "40"}}]}
  }
}
  • must和should和must_not组合
txt 复制代码
GET mystore/_search
{
  "query": {
    "bool": {
      "must": [{"range": {"price": {"gte": 20,"lte": 50}}}],
      "should": [{"range": {"price": {"gte": 40,"lte": 60}}}],
      "must_not": [{"match": {"price": "40"}}]
    }
  }
}

查考文档

相关推荐
Lx3523 小时前
Hadoop数据处理优化:减少Shuffle阶段的性能损耗
大数据·hadoop
Elasticsearch6 小时前
平衡尺度:利用权重使倒数排序融合 (RRF) 更加智能
elasticsearch
武子康7 小时前
大数据-99 Spark Streaming 数据源全面总结:原理、应用 文件流、Socket、RDD队列流
大数据·后端·spark
阿里云大数据AI技术1 天前
大数据公有云市场第一,阿里云占比47%!
大数据
Lx3521 天前
Hadoop容错机制深度解析:保障作业稳定运行
大数据·hadoop
muyun28001 天前
Docker 下部署 Elasticsearch 8 并集成 Kibana 和 IK 分词器
elasticsearch·docker·容器
T06205141 天前
工具变量-5G试点城市DID数据(2014-2025年
大数据
向往鹰的翱翔1 天前
BKY莱德因:5大黑科技逆转时光
大数据·人工智能·科技·生活·健康医疗
鸿乃江边鸟1 天前
向量化和列式存储
大数据·sql·向量化
IT毕设梦工厂1 天前
大数据毕业设计选题推荐-基于大数据的客户购物订单数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData
大数据·hadoop·数据分析·spark·毕业设计·源码·bigdata