### Elasticsearch Version

8.x

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

Darwin

### Problem Description

Searching a filtered and a non-filtered data stream alias that both point to the same datastream currently filter the result set 
(relevant [code](https://github.com/elastic/elasticsearch/blob/main/server/src/main/java/org/elasticsearch/cluster/metadata/IndexNameExpressionResolver.java#L714)  )

The desired behaviour is to **not** consider the filter in this case and return the (wider) un-filtered result.

(the desired behaviour for data stream aliases currently exists for indices aliases - relevant code that abandons applying the filter for _index aliases_ is [here](https://github.com/elastic/elasticsearch/blob/main/server/src/main/java/org/elasticsearch/cluster/metadata/IndexNameExpressionResolver.java#L743) )

### Steps to Reproduce

```
PUT _index_template/datastream-template
{
  "index_patterns": [
    "my-datastream"
  ],
  "data_stream": {
  }, 
  "template": {
    "aliases": {
      "first_alias": {
        "filter": {
          "term": {
            "message": "first"
          }
        }
      },
      "second_alias": {}
    }
  },
  "composed_of": []
}



POST my-datastream/_doc
{
  "message":"first",
  "@timestamp":"2023-05-02T08:02:40.420Z"
}


POST my-datastream/_doc
{
  "message":"second",
  "@timestamp":"2023-05-02T08:02:40.420Z"
}

GET first_alias,second_alias/_search
```

The `GET first_alias,second_alias/_search` call only returns one hit, while it should return 2.

### Logs (if relevant)

_No response_
modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/DataStreamIT.java
GetDataStreamAction.Response response = client().execute(
            GetDataStreamAction.INSTANCE,
            new GetDataStreamAction.Request(new String[] { "metrics-foo" })
        ).actionGet();
        assertThat(response.getDataStreams().size(), is(1));
        DataStreamInfo metricsFooDataStream = response.getDataStreams().get(0);
        assertThat(metricsFooDataStream.getDataStream().getName(), is("metrics-foo"));
        assertThat(metricsFooDataStream.getDataStreamStatus(), is(ClusterHealthStatus.YELLOW));
        assertThat(metricsFooDataStream.getIndexTemplate(), is("template_for_foo"));
        assertThat(metricsFooDataStream.getIlmPolicy(), is(nullValue()));
        assertThat(metricsFooDataStream.getDataStream().getLifecycle(), is(lifecycle));
    }
    private static void assertBackingIndex(String backingIndex, String timestampFieldPathInMapping, Map<?, ?> expectedMapping) {
        GetIndexResponse getIndexResponse = client().admin().indices().getIndex(new GetIndexRequest().indices(backingIndex)).actionGet();
        assertThat(getIndexResponse.getSettings().get(backingIndex), notNullValue());
        assertThat(getIndexResponse.getSettings().get(backingIndex).getAsBoolean("index.hidden", null), is(true));
        Map<?, ?> mappings = getIndexResponse.getMappings().get(backingIndex).getSourceAsMap();
        assertThat(ObjectPath.eval(timestampFieldPathInMapping, mappings), is(expectedMapping));
    }
    public void testNoTimestampInDocument() throws Exception {
        putComposableIndexTemplate("id", List.of("logs-foobar*"));
        String dataStreamName = "logs-foobar";
        CreateDataStreamAction.Request createDataStreamRequest = new CreateDataStreamAction.Request(dataStreamName);
        client().execute(CreateDataStreamAction.INSTANCE, createDataStreamRequest).get();
        IndexRequest indexRequest = new IndexRequest(dataStreamName).opType("create").source("{}", XContentType.JSON);
        Exception e = expectThrows(Exception.class, () -> client().index(indexRequest).actionGet());
        assertThat(e.getCause().getMessage(), equalTo("data stream timestamp field [@timestamp] is missing"));
    }
    public void testMultipleTimestampValuesInDocument() throws Exception {
        putComposableIndexTemplate("id", List.of("logs-foobar*"));