Elasticsearch(006):es中filtered和filter的区别

Elasticsearch(006):es中filtered和filter的区别文章目录 1 bool 和 filtered 1 1 说明 1 2 示例使用 2 filter 的两种用法 1 bool 和 filtered 1 1 说明 es 5 0 版本更新后 filtered 的查询将替换为 bool 查询 filtered 是比较老的的版本的语法 现在目前已经被 bool 替代 推荐使用 bool

大家好,我是讯享网,很高兴认识大家。

文章目录

  • 1. bool 和 filtered
    • 1.1 说明
    • 1.2 示例使用
  • 2. filter的两种用法

1. bool 和 filtered

1.1 说明

es 5.0版本更新后,filtered的查询将替换为bool查询。

filtered是比较老的的版本的语法。现在目前已经被bool替代。推荐使用bool。

官方文档地址:链接

1.2 示例使用

老版本写法

GET _search { "query": { "filtered": { "query": { "match": { "text": "quick brown fox" } }, "filter": { "term": { "status": "published" } } } } } 

讯享网

新版本的写法

讯享网GET _search { "query": { "bool": { "must": { "match": { "text": "quick brown fox" } }, "filter": { "term": { "status": "published" } } } } } 

2. filter的两种用法

  • 嵌套在bool下

    {
    “query”: {
    “bool”: {
    “must”: {
    “term”: {
    “term”:{“title”:“kitchen3”}
    }
    },
    “filter”: {
    “term”: {
    “price”:1000
    }
    }
    }
    }
    }

  • 在根目录下使用

    {
    “query”:{
    “term”:{“title”:“kitchen3”}
    },
    “filter”:{
    “term”:{“price”:1000}
    }
    }

区别


讯享网

位置

区别

备注

bool下

在filter query先执行filter,不计算score,再执行query。

如 果还要在搜索结果中执行aggregation操作,filter query聚合的是filter和query之后的结果,而filter聚合的是query的结果

根目录下

根目录中的filter在query后执行。

如果还要在搜索结果中执行aggregation操作,filter query聚合的是filter和query之后的结果,而filter聚合的是query的结果

小讯
上一篇 2025-01-06 20:27
下一篇 2025-03-21 16:24

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/11569.html