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

相关推荐
PM老周2 分钟前
DORA2025:如何用AI提升研发效能(以 ONES MCP Server 为例)
大数据·人工智能
皇族崛起5 分钟前
【众包 + AI智能体】AI境生态巡查平台边防借鉴价值专项调研——以广西边境线治理为例
大数据·人工智能
电商软件开发 小银5 分钟前
3倍转化率实证研究:零售业顾客关系重构
大数据·软件开发·数字化转型·商业模式·实体经济·区域连锁·消费经济
编织幻境的妖23 分钟前
Zookeeper在大数据集群中的作用详解
大数据·分布式·zookeeper
beijingliushao23 分钟前
102-Spark之Standalone环境安装步骤-2
大数据·分布式·spark
良策金宝AI38 分钟前
全球工程软件格局重塑:中国AI原生平台的机会窗口
大数据·运维·人工智能
赵谨言1 小时前
基于OpenCV的图像梯度与边缘检测研究
大数据·开发语言·经验分享·python
pale_moonlight1 小时前
十二、大数据数据可视化实战
大数据·信息可视化
拓端研究室1 小时前
专题:2025医疗行业核心洞察报告:AI医疗、医疗器械、投融资与新药|附380+份报告PDF、数据、可视化模板汇总下载
大数据·人工智能
Jackyzhe1 小时前
Flink源码阅读:如何生成ExecutionGraph
大数据·flink