83 lines
2.7 KiB
Plaintext
83 lines
2.7 KiB
Plaintext
[[breaking-changes-7.6]]
|
|
== Breaking changes in 7.6
|
|
++++
|
|
<titleabbrev>7.6</titleabbrev>
|
|
++++
|
|
|
|
This section discusses the changes that you need to be aware of when migrating
|
|
your application to Elasticsearch 7.6.
|
|
|
|
See also <<release-highlights>> and <<es-release-notes>>.
|
|
|
|
//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 a derived key, you must explicitly
|
|
specify a role descriptor with no privileges:
|
|
|
|
[source,js]
|
|
----
|
|
...
|
|
"role_descriptors": {
|
|
"no-privilege": {
|
|
}
|
|
}
|
|
...
|
|
----
|
|
// NOTCONSOLE
|
|
|
|
//end::notable-breaking-changes[]
|
|
|
|
[discrete]
|
|
[[breaking_76_search_changes]]
|
|
=== Search changes
|
|
|
|
[discrete]
|
|
==== Aggregating and sorting on `_id` is deprecated
|
|
It's possible to aggregate and sort on the built-in `_id` field by loading an
|
|
expensive data structure called fielddata. This was deprecated in 7.6 and will
|
|
be disallowed by default in 8.0. As an alternative, the `_id` field's contents
|
|
can be duplicated into another field with docvalues enabled (note that this
|
|
does not apply to auto-generated IDs).
|
|
|
|
[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.
|