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
public void testNoFilters() throws IOException {
        testCase(
            new FiltersAggregationBuilder("test", new KeyedFilter[0]),
            new MatchAllDocsQuery(),
            iw -> { iw.addDocument(List.of()); },
            (InternalFilters result) -> { assertThat(result.getBuckets(), hasSize(0)); }
        );
    }
    public void testNoFiltersWithSubAggs() throws IOException {
        testCase(
            new FiltersAggregationBuilder("test", new KeyedFilter[0]).subAggregation(new MaxAggregationBuilder("m").field("i")),
            new MatchAllDocsQuery(),
            iw -> { iw.addDocument(List.of(new SortedNumericDocValuesField("i", 1))); },
            (InternalFilters result) -> { assertThat(result.getBuckets(), hasSize(0)); },
            new NumberFieldMapper.NumberFieldType("m", NumberFieldMapper.NumberType.INTEGER)
        );
    }
    public void testKeyedFilter() throws Exception {
        Directory directory = newDirectory();
        RandomIndexWriter indexWriter = new RandomIndexWriter(random(), directory);
        Document document = new Document();
        document.add(new Field("field", "foo", KeywordFieldMapper.Defaults.FIELD_TYPE));
        indexWriter.addDocument(document);
        document.clear();
        document.add(new Field("field", "else", KeywordFieldMapper.Defaults.FIELD_TYPE));
        indexWriter.addDocument(document);
        
        indexWriter.commit();
        document.add(new Field("field", "foo", KeywordFieldMapper.Defaults.FIELD_TYPE));
        indexWriter.addDocument(document);