[[breaking-changes-7.6]] == Breaking changes in 7.6 ++++ 7.6 ++++ This section discusses the changes that you need to be aware of when migrating your application to Elasticsearch 7.6. See also <> and <>. //NOTE: The notable-breaking-changes tagged regions are re-used in the //Installation and Upgrade Guide //tag::notable-breaking-changes[] [discrete] [[breaking_76_security_changes]] === Security changes [discrete] ==== {es} API key privileges If you use an API key to create another API key (sometimes called a _derived key_), its behavior is impacted by the fix for https://www.elastic.co/community/security[CVE-2020-7009]. When you make a request to create API keys, you can specify an expiration and privileges for the API key. Previously, when you created a derived key, it had no privileges. This behavior disregarded any privileges that you specified in the {ref}/security-api-create-api-key.html[create API key API]. As of 7.6.2, this behavior changes. To create derived keys with no privileges, you must explicitly specify an empty role descriptor. For example: [source,js] ---- ... "role_descriptors": { "no-privilege": { } } ... ---- // NOTCONSOLE //end::notable-breaking-changes[] [discrete] [[breaking_76_search_changes]] === Search changes [discrete] ==== Deprecation of sparse vector fields The `sparse_vector` field type has been deprecated and will be removed in 8.0. We have not seen much interest in this experimental field type, and don't see a clear use case as it's currently designed. If you have feedback or suggestions around sparse vector functionality, please let us know through GitHub or the 'discuss' forums. [discrete] ==== Update to vector function signatures The vector functions of the form `function(query, doc['field'])` are deprecated, and the form `function(query, 'field')` should be used instead. For example, `cosineSimilarity(query, doc['field'])` is replaced by `cosineSimilarity(query, 'field')`. [discrete] ==== Disallow use of the `nGram` and `edgeNGram` tokenizer names The `nGram` and `edgeNGram` tokenizer names haven been deprecated with 7.6. Mappings for indices created after 7.6 will continue to work but emit a deprecation warning. The tokenizer name should be changed to the fully equivalent `ngram` or `edge_ngram` names for new indices and in index templates.