Skip to content

Implement competitiveIterator() on FilterAggregator #97544

Closed
@jpountz

Description

@jpountz

Description

We have had this longstanding issue that running a top-level filter aggregation is often (not always, e.g. not if you need the total hit count too) a performance bug, as Elasticsearch would iterate over docs that match the query and would then check each of these docs against the filter of the filter aggregation. It's usually a better idea to put the filter directly into the query, where it can be used to drive iteration if appropriate.

We could do this automatically by implementing the LeafCollector#competitiveIterator API that was introduced for dynamic pruning, in order to automatically start intersecting the query with the filter of the filter aggregator once enough hits have been counted.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions