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"}}]
    }
  }
}

查考文档

相关推荐
大数据张老师1 小时前
用 AI 做数据分析:从“数字”里挖“规律”
大数据·人工智能
博闻录3 小时前
以 “有机” 重构增长:云集从电商平台到健康生活社区的跃迁
大数据·重构·生活
nbsaas-boot4 小时前
收银系统优惠功能架构:可扩展设计指南(含可扩展性思路与落地细节)
java·大数据·运维
Penge6665 小时前
Elasticsearch深度分页解决方案
elasticsearch
lingling0095 小时前
实验记录安全存储:生物医药科研的数字化基石
大数据·人工智能
Penge6665 小时前
Elasticsearch match_phrase 查询 slop 参数详解文档
elasticsearch
优秘智能UMI5 小时前
私有化大模型架构解决方案构建指南
大数据·人工智能·深度学习·信息可视化·aigc
Penge6665 小时前
Elasticsearch 中的 copy_to:一文掌握字段合并搜索的利器
elasticsearch
TDengine (老段)16 小时前
TDengine 转化类函数 TO_CHAR 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据