Elasticsearch breaking changesedit

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

Machine learning changesedit

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 changesedit

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 changesedit

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 changesedit

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.