一尘不染

过滤器在过滤查询的内部还是外部是否重要?

elasticsearch

虽然这两个给我相同的结果,但在内部或外部安装过滤器有什么区别?在表现或幕后动作方面是否有所不同?

"query": {
    "filtered": {
        "query":  { "match": { "email": "business opportunity" }},
        "filter": { "term":  { "folder": "inbox" }}
    }
}



"query": {
    "filtered": {
    "query":  { "match": { "email": "business opportunity" }}
    }
},
"filter": {
    "term":  { "folder": "inbox" }
}

阅读 178

收藏
2020-06-22

共1个答案

一尘不染

在查询中过滤

Elasticsearch将以更有效的方式执行查询和过滤,以减少结果集并尽快获得答案。这称为filtered_query

查询后过滤

首先运行查询, 然后对 结果进行过滤, 然后
再将其返回给客户端。这称为post_filter

尽管post_filter的效率较低,但在与聚合结合使用时很有用-聚合值不会考虑post_filter,即,聚合只会出现在查询结果上。

2020-06-22