### 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
StringBuilder bulkBuilder = new StringBuilder();
        for (int i = 0; i < sourceText.size(); i++) {
            bulkBuilder.append(createAction);
            bulkBuilder.append("{\"text_field\": \"").append(sourceText.get(i)).append("\", \"ml.tokens\":{");
            for (var entry : tokenWeights.get(i).entrySet()) {
                writeToken(entry, bulkBuilder).append(',');
            }
            bulkBuilder.deleteCharAt(bulkBuilder.length() - 1); 
            bulkBuilder.append("}}\n");
        }
        Request bulkRequest = new Request("POST", "/_bulk");
        bulkRequest.setJsonEntity(bulkBuilder.toString());
        bulkRequest.addParameter("refresh", "true");
        var bulkResponse = client().performRequest(bulkRequest);
        assertOkWithErrorMessage(bulkResponse);
    }
    private void bulkIndexThroughPipeline(List<String> sourceText, String indexName, String pipelineId) throws IOException {
        String createAction = "{\"create\": {\"_index\": \"" + indexName + "\"}}\n";
        StringBuilder bulkBuilder = new StringBuilder();
        for (int i = 0; i < sourceText.size(); i++) {
            bulkBuilder.append(createAction);
            bulkBuilder.append("{\"text_field\": \"").append(sourceText.get(i)).append("\"}\n");
        }
        Request bulkRequest = new Request("POST", "/_bulk");
        bulkRequest.setJsonEntity(bulkBuilder.toString());
        bulkRequest.addParameter("refresh", "true");
        bulkRequest.addParameter("pipeline", pipelineId);
        var bulkResponse = client().performRequest(bulkRequest);
        assertOkWithErrorMessage(bulkResponse);
    }