### Description

Currently, `text_expansion` queries are limited to using rank_features field types.

As we [brought back sparse_vector](https://github.com/elastic/elasticsearch/issues/98104) field type, we want text_expansion queries to be able to work with `sparse_vector` fields as well.

`rank_features` field type should keep being usable in `text_expansion` queries. We don't want to deprecate until the UI and clients that set this up are ready to migrate to `sparse_vector`.
x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/TextExpansionQueryIT.java
"tokenization": {
                     "bert": {
                       "with_special_tokens": false
                     }
                   }
                 }
               }
             }""");
        client().performRequest(request);
    }
    private void createRankFeaturesIndex(String indexName) throws IOException {
        Request createIndex = new Request("PUT", "/" + indexName);
        createIndex.setJsonEntity("""
            {
              "mappings": {
                "properties": {
                  "text_field": {
                    "type": "text"
                  },
                  "ml.tokens": {
                    "type": "rank_features"
                  }
                }
              }
            }""");
        var response = client().performRequest(createIndex);
        assertOkWithErrorMessage(response);
    }
    private void bulkIndexDocs(List<String> sourceText, List<Map<String, Float>> tokenWeights, String indexName) throws IOException {
        String createAction = "{\"create\": {\"_index\": \"" + indexName + "\"}}\n";