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/test/java/org/elasticsearch/search/aggregations/bucket/filter/FiltersAggregatorTests.java
assertThat(b.getDocCount(), equalTo(6666L));
                max = b.getAggregations().get("m");
                assertThat(max.value(), equalTo(9998.0));
                sum = b.getAggregations().get("s");
                assertThat(sum.value(), equalTo(33326667.0));
                assertThat(impl, equalTo(FilterByFilterAggregator.class));
                assertMap(
                    debug,
                    matchesMap().entry(
                        "test",
                        matchesMap().entry("segments_with_doc_count_field", 0)
                            .entry("segments_with_deleted_docs", 0)
                            .entry("segments_collected", greaterThanOrEqualTo(1))
                            .entry("segments_counted", 0)
                            .entry("filters", hasSize(2))
                    ).entry("test.s", matchesMap()).entry("test.m", matchesMap())
                );
            },
            dateFt,
            intFt
        );
    }
    public void testSubAggsManyFilters() throws IOException {
        MappedFieldType dateFt = new DateFieldMapper.DateFieldType(
            "test",
            true,
            false,
            false,
            DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER,
            Resolution.MILLISECONDS,