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

相关推荐
大模型码小白15 分钟前
Spring AI 框架中集成 MCP 的完整指南:从服务端到客户端的全流程实践
大数据·运维·数据库·人工智能·python·sql·spring
小K讲AI营销22 分钟前
固态电池战局拆解:机器人为何先于汽车吃到红利
大数据·人工智能·区块链
Elasticsearch28 分钟前
了解你的事实:Elasticsearch AI Indices 让 agents 无需通读内容,就能保留答案
elasticsearch
春风送暖88836 分钟前
全星APQP-QMS一体化平台,本地化部署安全可控,无缝对接现有系统,移动端实时协同,助力企业高效合规、降本增效
大数据
zgl_200537791 小时前
源代码:跨数据库通用“字段级”数据血缘解析与图形化(2/3:标注信息的拆解、检验、保存)
大数据·数据库·数据仓库·sql·数据挖掘·etl·嵌入式实时数据库
BD_Marathon1 小时前
Hadoop常用端口号
java·大数据·hadoop
智恒百亿1 小时前
企业 AI 推理本地化部署:GPU 服务器选型技术分析(2026 年 8 月)
大数据·服务器·人工智能
黎阳之光1 小时前
软硬协同国产化 | 黎阳之光矩阵式视频融合管理系统完成摩尔线程国产GPU兼容适配
大数据·人工智能·物联网·安全·数字孪生
长谷深风1111 小时前
读懂 MCP:能力、传输与多 Server 连接
java·大数据·ai·ai agent·mcp·streamable http·agent设计
Elasticsearch1 小时前
机构如何统一智慧城市数据以改善公共服务?
elasticsearch