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会缓存查询结果

相关推荐
2501_9411429312 小时前
云原生微服务环境下服务熔断与降级优化实践——提升系统稳定性与容错能力
java·大数据·网络
智海观潮13 小时前
SparkSQL真的不支持存储NullType类型数据到Parquet吗?
大数据·spark
国科安芯13 小时前
航天医疗领域AS32S601芯片的性能分析与适配性探讨
大数据·网络·人工智能·单片机·嵌入式硬件·fpga开发·性能优化
小飞象—木兮14 小时前
【产品运营必备】数据分析实战宝典:从入门到精通,驱动业务增长(附相关材料下载)
大数据·数据挖掘·数据分析·产品运营
哥谭居民000114 小时前
需求分析,领域划分到选择套用业务模式到转化落地,两个基本案例
java·大数据·需求分析
wang_yb14 小时前
用样本猜总体的秘密武器,4大抽样分布总结
大数据·databook
EveryPossible15 小时前
弹窗高度设置
大数据
微扬嘴角15 小时前
springcloud篇7-ElasticSearch分布式搜索
elasticsearch·spring cloud
Elastic 中国社区官方博客15 小时前
Elasticsearch 中的文档级基于属性的访问控制 - ABAC
大数据·数据库·elasticsearch·搜索引擎·全文检索
YangYang9YangYan15 小时前
2026年中专计算机专业证书报考指南:高性价比认证与职业路径规划
大数据·人工智能·学习·计算机视觉