当前位置: 首页 > news >正文

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

文章目录

  • 一、单个使用
  • 二、must和must_not组合(A-B)
  • 三、must和should组合(A)
  • 四、should和must_not组合(A-B)
  • 五、must和should和must_not组合(A-C)
  • 六、验证脚本,执行之后自行观察结果(price字段用来测试)即可理解
  • 查考文档

一、单个使用

  • 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字段用来测试)即可理解

  • 初始化数据
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组合
GET mystore/_search
{"query": {"bool": {"must": [{"range": {"price": {"gte": 20,"lte": 50}}}],"must_not": [{"match": {"price": "40"}}]}}
}
  • must和should组合
GET mystore/_search
{"query": {"bool": {"must": [{"range": {"price": {"gte": 20,"lte": 50}}}],"should": [{"range": {"price": {"gte": 40,"lte": 60}}}]}}
}
  • should和must_not组合
GET mystore/_search
{"query": {"bool": {"should": [{"range": {"price": {"gte": 40,"lte": 60}}}],"must_not": [{"match": {"price": "40"}}]}}
}
  • must和should和must_not组合
GET mystore/_search
{"query": {"bool": {"must": [{"range": {"price": {"gte": 20,"lte": 50}}}],"should": [{"range": {"price": {"gte": 40,"lte": 60}}}],"must_not": [{"match": {"price": "40"}}]}}
}

查考文档

  • must,must_not,should组合关系以及OR和AND
http://www.lryc.cn/news/233132.html

相关文章:

  • SpringCloud Alibaba组件入门全方面汇总(中):服务熔断降级-Sentinel
  • 算法通关村第十关|青铜|快速排序
  • python科研绘图:圆环图
  • 【Linux】C文件系统详解(一)——C文件操作
  • uniapp 实现微信小程序手机号一键登录
  • 基于 Java 解释一下硬编码和非硬编码?
  • 【机器学习7】优化算法
  • 常见的近似算法
  • 【完整详细】IntelliJ IDEA中使用Docker插件一键部署前后端分离项目
  • ubuntu20.04 安装TensorRT,解决依赖问题
  • 你知道如何科学的学习吗?-关于个人成长的思考
  • Java学习之路 —— 多线程
  • 【云原生-Kurbernetes篇】K8s的存储卷/数据卷+PV与PVC
  • 二层、三层交换机之间到底有什么区别?
  • 【论文阅读】2736. 最大和查询-2023.11.17
  • 2. zk集群部署
  • 抖音快手判断性别、年龄自动关注脚本,按键精灵开源代码!
  • IDEA软件使用步骤
  • 设计模式-11-模板模式
  • 【技术分享】EIGRP stub实验
  • Python 爬虫 AES DES加密反爬
  • (论文阅读30/100)Convolutional Pose Machines
  • vue3实现数据大屏内数据向上滚动,鼠标进入停止滚动 vue3+Vue3SeamlessScroll
  • WPF显示3D图形
  • Xrdp+Cpolar实现远程访问Linux Kali桌面
  • 赚钱
  • Django command执行脚本
  • GLSL: Shader cannot be patched for instancing.
  • Django测试环境搭建及ORM查询(创建外键|跨表查询|双下划线查询 )
  • css 设置网页最小字体为12px