ES bool查询

一、bool查询包含四种操作

在Elasticsearch中,可以使用bool查询来实现多条件查询。bool查询是一种组合查询,可以通过组合多个查询条件来实现更复杂的查询需求。bool查询包含以下子查询:

  1. must查询:表示必须满足的查询条件,相当于逻辑运算中的"与"。如果某条文档满足所有的must查询条件,才会被返回。

  2. should查询:表示可选的查询条件,相当于逻辑运算中的"或"。如果某条文档满足其中任意一个should查询条件,则会被返回。

  3. must_not查询:表示必须不满足的查询条件,相当于逻辑运算中的"非"。如果某条文档满足任意一个must_not查询条件,则不会被返回。

以下是一个bool多条件查询的示例:

java 复制代码
{
  "query": {
    "bool": {
      "must": [
        { "match": { "title": "Hello World" }},
        { "match": { "author": "CSDN" }}
      ],
      "should": [
        { "match": { "category": "Apple" } },
        { "match": { "category": "Banana" }}
      ],
      "must_not": [
        { "match": { "status": "1" }}
      ]
    }
  }
}

上面的查询条件表示查询标题中包含"Elasticsearch"并且作者为"CSDN",或者分类为"Apple"或"Banana",但不包括状态为"1"的文档。

二、功能

1.must 对应mysql的 and a=

2.must not 对应mysql的 and a!=

3.filter 对应mysql的 and a=

4.should 对应mysql的 or a=

三、must和filter比较

1.must算分,filter不算分

2.filter效率比must高

四、filter效率高的原理

1.query context:文档更加匹配查询条件,分数越高越匹配

2.filter context:文档是否匹配查询条件,并且ES会缓存查询结果

相关推荐
kjmkq1 分钟前
2026实战效果优选GEO服务商测评:效果好+服务优首选合作
大数据·人工智能
互联圈运营观察11 分钟前
深圳干式变压器智能温控箱哪家强?2026年专业测评与选型指南
大数据·人工智能
TDengine (老段)29 分钟前
TDengine MemTable 深度解析 — 内存写入缓冲区的数据结构与生命周期
大数据·数据结构·数据库·物联网·时序数据库·tdengine·涛思数据
CableTech_SQH1 小时前
上海大歌剧院工程综合布线解决方案分析报告
大数据·网络·数据库·5g·信息与通信
福老板的生意经1 小时前
AI重构短视频营销:一站式创作分发系统的落地场景与商业价值分析
大数据·人工智能
cd_949217211 小时前
云工场科技推进CPU+GPU协同推理,推动大模型应用降本增效
大数据·人工智能·科技
风途科技~1 小时前
全天候实时管控,在线水质监测仪守护水环境安全
大数据·运维·安全
不吃鱼的羊2 小时前
提交代码添加Change-Id
大数据·elasticsearch·搜索引擎
谁似人间西林客2 小时前
汽车智能制造如何解决混线生产与质量追溯难题?
大数据·汽车·制造
thubier(段新建)2 小时前
三方物流平台架构选型:统一商品SKU vs 客户自定义SKU,2026行业最优解复盘
大数据