Elasticsearch Query 처리 순서#
Summary#
Filtered Query는 최종 search와 aggregation 둘 다의 결과에 영향을 미치지만, PostFiltered Query는 최종 search 결과에만 영향을 미치고 aggregation에는 영향을 미치지 않는다.
Query 처리 순서#
SearchRequest → (Filtered) → Query → (PostFilter) → Result → RescoreQuery
↓
Aggregation → AggregationResult

Filter Query 예시#
{
"query": {
"filtered": {
"filter": {
"term": {
"location": "denver"
}
}
}
}
}
Filter Query는 검색 결과와 Aggregation 모두에 영향을 미친다.

PostFilter Query 예시#
{
"post_filter": {
"term": {
"location": "denver"
}
}
}
PostFilter Query는 검색 결과에만 영향을 미치고, Aggregation 결과에는 영향을 미치지 않는다.
Rescore Query 파라미터#
- window_size: 각 shard에서 재점수화할 상위 결과의 수
- score_mode: main query score와 rescore query의 점수를 결합하는 방식





