### Description

Currently we can’t run an approximate kNN search on a [filtered alias](https://www.elastic.co/guide/en/elasticsearch/reference/master/aliases.html#filter-alias). Running a kNN search against a filtered alias may incorrectly result in fewer than k hits.

Reproduction:

```js
PUT index1
{
    "settings": {
        "number_of_shards": 1,
        "number_of_replicas": 0
    },
    "mappings": {
        "dynamic": "false",
        "properties": {
            "my_vector": {
                "type": "dense_vector",
                "dims": 4,
                "index" : true,
                "similarity" : "l2_norm"
            },
            "k": {
                "type": "keyword",
                "store": true 
            }
        }
    }
}
```

```js
POST index1/_bulk?refresh=true
{ "index" : {"_id": 1} }
{"my_vector" : [230.0, 300.33, -34.8988, 15.555], "k" : "v1"}
{ "index" : {"_id": 2} }
{"my_vector" : [0.5, 0.5, 0.5, -1], "k" : "v1"}
{ "index" : {"_id": 3} }
{"my_vector" : [0.5, 0.5, 0.5, 0.5], "k" : "v2"}
{ "index" : {"_id": 4} }
{"my_vector" : [0.5, 0.5, 0.5, 0], "k" : "v2"}
```

```js
POST _aliases
{
    "actions": [
        {
            "add": {
                "index": "index1",
                "alias": "my-alias",
                "filter": {
                    "term": {
                        "k": "v1"
                    }
                }
            }
        }
    ]
}
````

// correctly returns 2 results as request by "k"
```js
GET index1/_search
{
    "knn": {
        "field": "my_vector",
        "query_vector": [
            230.0,
            300.33,
            -34.8988,
            15.555
        ],
        "k": 2,
        "num_candidates": 100,
        "filter": {
            "term": {
                "k": "v1"
            }
        }
    },
    "_source": [
        "k"
    ]
}
```

// incorrectly returns 1 result even "k = 2"
```js
GET my-alias/_search
{
    "knn": {
        "field": "my_vector",
        "query_vector": [
            230.0,
            300.33,
            -34.8988,
            15.555
        ],
        "k": 2,
        "num_candidates": 100
    },
    "_source": "k"
}
```
server/src/test/java/org/elasticsearch/action/search/KnnSearchSingleNodeTests.java
private static final int VECTOR_DIMENSION = 10;
    public void testKnnWithQuery() throws IOException {
        int numShards = 1 + randomInt(3);
        Settings indexSettings = Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numShards).build();
        XContentBuilder builder = XContentFactory.jsonBuilder()
            .startObject()
            .startObject("properties")
            .startObject("vector")
            .field("type", "dense_vector")
            .field("dims", VECTOR_DIMENSION)
            .field("index", true)
            .field("similarity", "l2_norm")
            .endObject()
            .startObject("text")
            .field("type", "text")
            .endObject()
            .endObject()
            .endObject();
        createIndex("index", indexSettings, builder);
        for (int doc = 0; doc < 10; doc++) {
            client().prepareIndex("index").setSource("vector", randomVector(), "text", "hello world").get();
            client().prepareIndex("index").setSource("text", "goodnight world").get();
        }
        client().admin().indices().prepareRefresh("index").get();
        float[] queryVector = randomVector();
        KnnSearchBuilder knnSearch = new KnnSearchBuilder("vector", queryVector, 5, 50).boost(5.0f);
        SearchResponse response = client().prepareSearch("index")