elasticsearch 部分一致 フィルタがフィルタ処理されたクエリの内側にあるか外側にあるかは重要ですか。



elasticsearch 部分一致 (1)

クエリ内でフィルタする

Elasticsearchはクエリを実行し、結果セットを減らしてできるだけ早く回答を得るために、これまで以上に効率的な方法でフィルタをかけます。 これはfiltered_queryと呼ばfiltered_query

クエリ後にフィルタする

最初にクエリが実行され、 次に結果がクライアントに返される前にフィルタ処理されます。 これはpost_filterと呼ばれます。

post_filterはそれほど効率的ではありませんが、集約と組み合わせるときに役に立ちます。集約された値はpost_filterを考慮に入れません。つまり、集約はクエリ結果に対してのみ行われます。

これら2つが私に同じ結果を与えている間、フィルターを内側と外側のどちらに使うの違いは何ですか? 舞台裏でのパフォーマンスやアクションの面で違いはありますか?

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




elasticsearch