Right now filter aggregations run in "compatible" mode if the top level query is `bool: {filter: { match_all: {}}}}` - but this really just just `match_all` in disguise. We should just run in filter-by-filter mode here.
server/src/main/java/org/elasticsearch/common/Rounding.java
private final DateTimeUnit unit;
        private final long interval;
        private ZoneId timeZone = ZoneOffset.UTC;
        private long offset = 0;
        public Builder(DateTimeUnit unit) {
            this.unit = unit;
            this.interval = -1;
        }
        public Builder(TimeValue interval) {
            this.unit = null;
            if (interval.millis() < 1) throw new IllegalArgumentException("Zero or negative time interval not supported");
            this.interval = interval.millis();
        }