**Elasticsearch version** (`bin/elasticsearch --version`): v7+

**Description of the problem including expected versus actual behavior**:

When used with an alias that has a filter, only the foreground set is filtered. The background set ignores the alias filter. This skews the results, especially when the user supplies an additional foreground filter, assuming the background filter will respect the alias filter.

**Steps to reproduce**:

```
PUT sig_terms_bug
{
  "mappings": {
    "properties": {
      "field1": {
        "type": "keyword"
      },
      "field2": {
        "type": "keyword"
      },
      "field3": {
        "type": "keyword"
      }
    }
  }
}

POST sig_terms_bug/_bulk?refresh=true
{ "index" : {} }
{ "field1" : "failed", "field2": "frontend-node", "field3": "foo" }
{ "index" : {} }
{ "field1" : "failed", "field2": "frontend-node", "field3": "bar" }
{ "index" : {} }
{ "field1" : "failed", "field2": "frontend-node", "field3": "bar" }
{ "index" : {} }
{ "field1" : "success", "field2": "frontend-node", "field3": "bar" }
{ "index" : {} }
{ "field1" : "success", "field2": "frontend-node", "field3": "bar" }
{ "index" : {} }
{ "field1" : "failed", "field2": "backend-node", "field3": "foo" }
{ "index" : {} }
{ "field1" : "failed", "field2": "backend-node", "field3": "bar" }
{ "index" : {} }
{ "field1" : "failed", "field2": "backend-node", "field3": "bar" }
{ "index" : {} }
{ "field1" : "success", "field2": "backend-node", "field3": "bar" }
{ "index" : {} }
{ "field1" : "success", "field2": "backend-node", "field3": "bar" }
{ "index" : {} }

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "sig_terms_bug",
        "alias": "sig_terms_bug_alias",
        "filter": {
          "bool": {
            "filter": [
              {
                "term": {
                  "field2": "frontend-node"
                }
              }
            ]
          }
        }
      }
    }
  ]
}

GET sig_terms_bug_alias/_search?track_total_hits=true&size=0&filter_path=aggregations
{
  "aggs": {
    "sig_term": {
      "significant_terms": {
        "field": "field3"
      }
    }
  }
}
```

This results in:
```
{
  "aggregations" : {
    "sig_term" : {
      "doc_count" : 5,
      "bg_count" : 10,
      "buckets" : [ ]
    }
  }
}
```

It seems to me that the `bg_count` should respect the alias filter.

server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/SignificantTermsAggregatorTests.java
assertNull(terms.getBucketByKey("even"));
                assertNull(terms.getBucketByKey("regular"));
                sigAgg.includeExclude(new IncludeExclude(null, null, evenStrings, oddStrings));
                terms = searchAndReduce(searcher, new TermQuery(new Term("text", "odd")), sigAgg, textFieldType);
                assertThat(terms.getSubsetSize(), equalTo(5L));
                assertEquals(0, terms.getBuckets().size());
                assertNull(terms.getBucketByKey("odd"));
                assertNull(terms.getBucketByKey("weird"));
                assertNull(terms.getBucketByKey("common"));
                assertNull(terms.getBucketByKey("even"));
                assertNull(terms.getBucketByKey("regular"));
            }
        }
    }
    /**
     * Uses the significant terms aggregation to find the keywords in text fields
     */
    public void testSignificance() throws IOException {
        testSignificance(getRandomSignificanceheuristic());
    }
    /**
     * Test to make sure foreground and background sets (when sampling) are over the same doc sets
     *
     * @throws IOException on test setup failure
     */
    public void testSamplingConsistency() throws IOException {
        TextFieldType textFieldType = new TextFieldType("text");
        textFieldType.setFielddata(true);
        IndexWriterConfig indexWriterConfig = newIndexWriterConfig(new StandardAnalyzer());
        indexWriterConfig.setMaxBufferedDocs(10_000);