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

相关推荐
2601_9622184710 小时前
万象生鲜系统智能报表引擎技术为生鲜企业提供数字化经营分析能力
大数据·运维·微服务·云原生·架构
清 晨10 小时前
跨境社媒内容定位怎么定?用受众、场景和语言建立账号主线
大数据·人工智能·跨境电商·营销策略
长谷深风11110 小时前
Agent执行系统中的身份与版本设计
java·大数据·人工智能·ai·大模型·task·aiagent
后焊加工装家10 小时前
MS-KC716 激光精密焊线机实战应用指南
大数据·人工智能
数商云企10 小时前
2026年西安电商智能客服开发选数商云企,技术稳交付快
大数据·python
m0_5474866610 小时前
《大数据应用软件工程》全套PPT课件2026
大数据·软件工程
cspttty11 小时前
2026市场分析师校招能力模型:SQL、Excel、BI与业务分析
大数据·数据库
hfywmsj11 小时前
广州餐饮铺位招租决策模型:从流量评估到合同风控的技术拆解
大数据·人工智能·广州餐饮铺位招租
cc57250265311 小时前
2026 秋招直播运营岗位招聘 JD 拆解,数据指标与数据分析能力备考思路
大数据·数据挖掘·数据分析
阡陌数智11 小时前
LiteLLM 开源网关实践:能力边界与生产环境改造要点
大数据·人工智能·开源·prompt·软件工程