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 LocalTimeOffset offset;
            FixedRounding(LocalTimeOffset offset) {
                this.offset = offset;
            }
            @Override
            public long round(long utcMillis) {
                return offset.localToUtcInThisOffset(roundKey(offset.utcToLocalTime(utcMillis), interval) * interval);
            }
            @Override
            public long nextRoundingValue(long utcMillis) {
                
                return new JavaTimeRounding().nextRoundingValue(utcMillis);
            }
            @Override
            public String toString() {
                return TimeIntervalRounding.this + "[fixed]";
            }
        }
        /**
         * Rounds down inside of any time zone, even if it is not
         * "effectively fixed". See {@link FixedRounding} for a description of
         * "effectively fixed".
         */
        private class VariableRounding extends TimeIntervalPreparedRounding implements LocalTimeOffset.Strategy {