ES中must与filter的区别

在 Elasticsearch 的布尔查询(bool query)中,mustfilter 是两个核心子句,它们的核心区别在于 是否影响相关性评分,这直接决定了它们在查询性能、使用场景和结果排序上的差异。以下是详细对比:

一、核心区别

二、底层原理

1. must 子句
  • 执行流程

    1. 对每个文档执行查询条件
    2. 计算匹配条件的相关性评分(_score
    3. 合并所有 must 子句的评分(默认相加)
    4. 按总分排序结果
  • 典型应用
{
  "query": {
    "bool": {
      "must": [
        { "match": { "title": "elasticsearch" } },  // 全文搜索
        { "range": { "price": { "gte": 100 } } }    // 范围条件(但需要影响排序)
      ]
    }
  }
}
2. filter 子句
  • 执行流程

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值