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

查考文档

相关推荐
Web3_Daisy6 分钟前
Token 分红机制详解:实现逻辑、激励结构与风险分析
大数据·人工智能·物联网·web3·区块链
B站计算机毕业设计之家1 小时前
Python 基于协同过滤的动漫推荐与数据分析平台 Django框架 协同过滤推荐算法 可视化 数据分析 大数据 大模型 计算机毕业设计(建议收藏)✅
大数据·python·scrapy·数据分析·django·课程设计·推荐算法
柯儿的天空1 小时前
【OpenClaw 全面解析:从零到精通】第 004 篇:OpenClaw 在 Linux/Ubuntu 上的安装与部署实战
linux·人工智能·ubuntu·elasticsearch·知识图谱
未来之窗软件服务1 小时前
全能合同管理系统/上百种合同类型/到期提醒——东方仙盟
大数据·合同管理·仙盟创梦ide·东方仙盟
guoji77881 小时前
Gemini 3.1 Pro 评估科学:超越基准测试的硬核能力测评方法论
大数据·人工智能
逸Y 仙X1 小时前
文章八:ElasticSearch特殊数据字段类型解读
java·大数据·linux·运维·elasticsearch·搜索引擎
专注API从业者2 小时前
淘宝商品详情 API 的 Webhook 回调机制设计与实现:实现数据主动推送
大数据·前端·数据结构·数据库
逸Y 仙X2 小时前
文章九:ElasticSearch索引字段常见属性
java·大数据·服务器·数据库·elasticsearch·搜索引擎
历程里程碑2 小时前
链表--排序链表
大数据·数据结构·算法·elasticsearch·链表·搜索引擎·排序算法
逸Y 仙X2 小时前
文章十:ElasticSearch索引字段高级属性
java·大数据·elasticsearch·搜索引擎·全文检索