Elasticsearch breaking changes

edit

This list summarizes the most important breaking changes in Elasticsearch 7.11.2. For the complete list, go to Elasticsearch breaking changes.

Machine learning changes

edit
The trained models API parameter for_export is now renamed to exclude_generated.

Details
The get trained models API no longer accepts for_export. Use exclude_generated instead.

REST API changes

edit
REST APIs that do not use a request body now return an error if a body is provided.

Details
Several Elasticsearch REST APIs do not use a request body. In previous versions, you could provide a request body when calling these APIs, and Elasticsearch would ignore the body. These APIs now return an error if you provide a request body, even if empty.

Impact
Update your application or workflow to avoid sending unneeded request bodies in REST API requests.

Search changes

edit
Keyword fields with a custom normalizer will use the normalized form when highlighting.

Details
Highlighters now use the same framework to load their values as the fields section of a search response. This means that normalization will be applied to the values of a keyword field; for example, a field configured with a lowercase normalizer will return highlighted snippets in lower case.

Internal fields used for text search acceleration are hidden.

Details
Text fields can add internal subfields using extra analysis to speed up prefix and phrase searches. Previously these were exposed to the field caps API and were available for searching directly. However, they did not implement all query types and could return bad results or throw errors if used via the query DSL. These subfields are now internal only and cannot be invoked as searchable fields in queries.

The significant text aggregation now throws an error if applied to a numeric field.

Details
The significant text aggregation could previously be applied to a fields that were defined as numeric, which made little sense and would always return an empty result. Given that applying a text-specific aggregation to a non-text field is almost certainly a mistake, this has now been changed to throw an error.

Transform changes

edit
Transforms now write group_by dates as strings.

Details
Transforms now write dates used in a group_by as formatted ISO strings instead of epoch_millis values. Previously constructed transforms will still use epoch_millis values. You can configure and change the output format in the settings of the transform.

The es.unsafely_permit_handshake_from_incompatible_builds system property is deprecated.

Details
The es.unsafely_permit_handshake_from_incompatible_builds system property is now deprecated.

Elasticsearch verifies that communicating pairs of nodes of the same version are running the same build and using the same wire format. You can bypass this check by setting es.unsafely_permit_handshake_from_incompatible_builds to true. Skipping this check is unsafe and not recommended.

Impact
To avoid deprecation warnings, discontinue use of the system property. Instead ensure that all nodes of the same version are running the same build.