Migrating to 7.11
editMigrating to 7.11
editThis section discusses the changes that you need to be aware of when migrating your application to Elasticsearch 7.11.
See also What’s new in 7.11 and Release notes.
Breaking changes
editThe following changes in Elasticsearch 7.11 might affect your applications and prevent them from operating normally. Before upgrading to 7.11, review these changes and take the described steps to mitigate the impact.
Breaking changes introduced in minor versions are normally limited to security and bug fixes. Significant changes in behavior are deprecated in a minor release and the old behavior is supported until the next major release. To find out if you are using any deprecated functionality, enable deprecation logging.
Machine learning changes
editThe 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
editREST 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
editKeyword 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
editTransforms 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.
Deprecations
editThe following functionality has been deprecated in Elasticsearch 7.11 and will be removed in 8.0 While this won’t have an immediate impact on your applications, we strongly encourage you take the described steps to update your code after upgrading to 7.11.
Significant changes in behavior are deprecated in a minor release and the old behavior is supported until the next major release. To find out if you are using any deprecated functionality, enable deprecation logging.
Security changes
editThe xpack.security.transport.ssl.enabled
setting will be required to configure xpack.security.transport.ssl
settings.
Details
Configuring any SSL settings for
xpack.security.transport.ssl
without also configuring
xpack.security.transport.ssl.enabled
generates warnings in the deprecation
log. In 8.0, this configuration will result in errors.
Impact
To avoid deprecation warnings, either:
-
Explicitly set
xpack.security.transport.ssl.enabled
asfalse
-
Discontinue use of other
xpack.security.transport.ssl
settings
If you want to enable SSL, follow the instructions to
encrypt communications between nodes. As part of this configuration, explicitly set
xpack.security.transport.ssl.enabled
as true
.
For example:
The xpack.security.http.ssl.enabled
setting will be required to configure xpack.security.http.ssl
settings.
Details
Configuring any SSL settings for xpack.security.http.ssl
without also
configuring xpack.security.http.ssl.enabled
generates warnings in the
deprecation log. In 8.0, this configuration will result in errors.
Impact
To avoid deprecation warnings, either:
-
Explicitly set
xpack.security.http.ssl.enabled
asfalse
-
Discontinue use of other
xpack.security.http.ssl
settings
If you want to enable SSL, follow the instructions to
encrypt HTTP client communications for Elasticsearch. As part
of this configuration, explicitly set xpack.security.http.ssl.enabled
as true
.
For example:
A xpack.security.transport.ssl
certificate and key will be required to enable SSL for the transport interface.
Details
Enabling SSL for the transport interface without also configuring a certificate
and key through use of the xpack.security.transport.ssl.keystore.path
setting or the xpack.security.transport.ssl.certificate
and
xpack.security.transport.ssl.key
settings generates warnings in the
deprecation log. In 8.0, this configuration will result in errors.
Impact
If xpack.security.transport.ssl.enabled
is set to true
, provide a
certificate and key using the xpack.security.transport.ssl.keystore.path
setting or the xpack.security.transport.ssl.certificate
and
xpack.security.transport.ssl.key
settings. If a certificate and key is not
provided, Elasticsearch will generate warnings in the deprecation log.
A xpack.security.http.ssl
certificate and key will be required to enable SSL for the HTTP layer.
Details
Enabling SSL for the HTTP layer without also configuring a certificate and key
through use of the xpack.security.http.ssl.keystore.path
setting or
the xpack.security.http.ssl.certificate
and xpack.security.http.ssl.key
settings generates warnings in the deprecation log. In 8.0, this configuration
will result in errors.
Impact
If xpack.security.http.ssl.enabled
is set to true
, provide a
certificate and key using the xpack.security.http.ssl.keystore.path
setting or the xpack.security.http.ssl.certificate
and
xpack.security.http.ssl.key
settings. If a certificate and key is not
provided, Elasticsearch will generate warnings in the deprecation log.
Transport deprecations
editThe 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.