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

查考文档

相关推荐
吴free18 分钟前
现代软件工程新范式:Harness、LOOP与Graph工程深度解析
大数据·软件工程
MuMuMu12232 小时前
工业园区 VOCs 绿岛集中治理:越华环保集团项目技术方案与工程实践
大数据·运维
AI大模型-小雄2 小时前
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据
大数据·数据库·elasticsearch·搜索引擎·chatgpt·后端开发·codex
品牌测评2 小时前
大模型推理算力平台推荐分享|六家平台计费与架构拆解
大数据·人工智能·架构
LedgerNinja2 小时前
WEEX 真实情况如何?交易平台如何判断是否可靠
大数据·人工智能·区块链
微三云 - 廖会灵 (私域系统开发)2 小时前
智慧社区运营破局:“消费返物业费” 模式的数字化架构与落地实践
大数据·架构
Elasticsearch3 小时前
深入浅出 Elastic 工作流(Workflows):核心架构与十一大顶级字段详解
elasticsearch
Databuff4 小时前
workbuddy能不能私有化部署
大数据·人工智能·开源软件
自由能燃气设备4 小时前
燃气容积式热水器厂家选购指南:2026年商用热水设备采购避坑手册
大数据·数据库·数据仓库·人工智能
ApacheSeaTunnel4 小时前
从 60万行/秒说起,看 SeaTunnel Zeta 基准测试如何做到”测得准“
大数据·数据集成·基准测试·seatunnel·数据同步