### Description

When using a ML model with that outputs sparse vectors (like ELSER), it's possible that some times the inference pipeline fails when indexing new documents and new ingested documents are not enriched with the `sparse_vector` fields.

One approach in this case is to run an update by query and issue a reindexing with the ml pipeline of the documents in place in the same index.
In this case, we would want to only update the documents that do not have `sparse_vector` fields, for example:

```
POST search-books/_update_by_query?pipeline=ml-inference-books
{
  "query": {
    "bool": {
      "must_not": {
        "exists": {
          "field": "ml.inference.description_expanded.predicted_value"
        }
      }
    }
  }
}
```
In theory this a much simpler approach then duplicating all the data to reindex in another index or to reissue bulk indexing requests from scratch. It only requires a single Elasticsearch API request.

the problem is that `sparse_vector` fields do not support `exists` queries.

```
{
  "error": {
    "root_cause": [
      {
        "type": "query_shard_exception",
        "reason": "failed to create query: [sparse_vector] fields do not support [exists] queries",
        "index_uuid": "WkxxefxdTuCiNeLy4b33jw",
        "index": "search-books"
      }
    ],
    "type": "search_phase_execution_exception",
    "reason": "all shards failed",
    "phase": "query",
    "grouped": true,
    "failed_shards": [
      {
        "shard": 0,
        "index": "search-books",
        "node": "l5lxDFkeSwOyiwOEkQtWZA",
        "reason": {
          "type": "query_shard_exception",
          "reason": "failed to create query: [sparse_vector] fields do not support [exists] queries",
          "index_uuid": "WkxxefxdTuCiNeLy4b33jw",
          "index": "search-books",
          "caused_by": {
            "type": "illegal_argument_exception",
            "reason": "[sparse_vector] fields do not support [exists] queries"
          }
        }
      }
    ]
  },
  "status": 400
}
```

This also makes it difficult to get an accurate count of how many fields are missing the `sparse_vector` fields and users have to rely on other fields/mechanisms to do a reindexing in place with update by query.

NOTE: This will only be for the top level sparse_vector field. NOT for any of its sparse dimensions.

server/src/main/java/org/elasticsearch/index/IndexVersion.java
* Detached index versions added below here.
     */
    public static final IndexVersion V_8_500_000 = registerIndexVersion(8_500_000, Version.LUCENE_9_7_0, "bf656f5e-5808-4eee-bf8a-e2bf6736ff55");
    public static final IndexVersion V_8_500_001 = registerIndexVersion(8_500_001, Version.LUCENE_9_7_0, "45045a5a-fc57-4462-89f6-6bc04cda6015");
    /*
     * STOP! READ THIS FIRST! No, really,
     *        ____ _____ ___  ____  _        ____  _____    _    ____    _____ _   _ ___ ____    _____ ___ ____  ____ _____ _
     *       / ___|_   _/ _ \|  _ \| |      |  _ \| ____|  / \  |  _ \  |_   _| | | |_ _/ ___|  |  ___|_ _|  _ \/ ___|_   _| |
     *       \___ \ | || | | | |_) | |      | |_) |  _|   / _ \ | | | |   | | | |_| || |\___ \  | |_   | || |_) \___ \ | | | |
     *        ___) || || |_| |  __/|_|      |  _ <| |___ / ___ \| |_| |   | | |  _  || | ___) | |  _|  | ||  _ < ___) || | |_|
     *       |____/ |_| \___/|_|   (_)      |_| \_\_____/_/   \_\____/    |_| |_| |_|___|____/  |_|   |___|_| \_\____/ |_| (_)
     *
     * A new index version should be added EVERY TIME a change is made to index metadata or data storage.
     * Each index version should only be used in a single merged commit (apart from the BwC versions copied from o.e.Version, ≤V_8_11_0).
     *
     * To add a new index version, add a new constant at the bottom of the list, above this comment, which is one greater than the
     * current highest version, ensure it has a fresh UUID, and update CurrentHolder#CURRENT to point to the new version. Don't add other
     * lines, comments, etc.
     *
     * REVERTING AN INDEX VERSION
     *
     * If you revert a commit with an index version change, you MUST ensure there is a NEW index version representing the reverted
     * change. DO NOT let the index version go backwards, it must ALWAYS be incremented.
     *
     * DETERMINING TRANSPORT VERSIONS FROM GIT HISTORY
     *
     * TODO after the release of v8.11.0, copy the instructions about using git to track the history of versions from TransportVersion.java
     * (the example commands won't make sense until at least 8.11.0 is released)
     */
    private static class CurrentHolder {