Elasticsearch release notes
editElasticsearch release notes
editElasticsearch version 9.0.0-rc1
editBreaking changes
editThe following changes in Elasticsearch 9.0 might affect your applications and prevent them from operating normally. Before upgrading to 9.0, review these changes and take the described steps to mitigate the impact. Also check out Elasticsearch version 9.0.0-beta1 breaking changes.
Drop TLS_RSA
cipher support for JDK 24
Details
This change removes TLS_RSA
ciphers from the list of default supported ciphers, for Elasticsearch deployments running on JDK 24.
Impact
The dropped ciphers are TLS_RSA_WITH_AES_256_GCM_SHA384
, TLS_RSA_WITH_AES_128_GCM_SHA256
, TLS_RSA_WITH_AES_256_CBC_SHA256
, TLS_RSA_WITH_AES_128_CBC_SHA256
, TLS_RSA_WITH_AES_256_CBC_SHA
, and TLS_RSA_WITH_AES_128_CBC_SHA
. TLS connections to Elasticsearch using these ciphers will no longer work. Please configure your clients to use one of supported cipher suites.
Deprecations
editThe following functionality has been deprecated in Elasticsearch 9.0 and will be removed in a future version. Also check out Elasticsearch version 9.0.0-beta1 deprecations.
While this won’t have an immediate impact on your applications, we strongly encourage you to take the described steps to update your code after upgrading to 9.0.
To find out if you are using any deprecated functionality, enable deprecation logging.
Add deprecation warning for flush API
Details
The anomaly detection job flush API is deprecated since it is only required for the post data API, which was deprecated since 7.11.0.
Impact
This should have a minimal impact on users as the flush API is only required for the post data API, which was deprecated since 7.11.0.
Deprecate Behavioral Analytics CRUD apis
Details
Behavioral Analytics has been deprecated as of 9.0.0 and will be removed in a future release. The APIs will still work for now, but will emit warning headers that the API has been deprecated.
Impact
Behavioral Analytics has been deprecated as of 9.0.0 and will be removed in a future release.
Bug fixes
edit- Analysis
-
- Adjust exception thrown when unable to load hunspell dict #123743
- Data streams
-
-
Updating
TransportRolloverAction.checkBlock
so that non-write-index blocks do not prevent data stream rollover #122905
-
Updating
- Downsampling
-
- Improve downsample performance by avoiding to read unnecessary dimension values when downsampling. #124451
- ES|QL
-
- Add support to VALUES aggregation for spatial types #122886 (issue: #122413)
- Avoid over collecting in Limit or Lucene Operator #123296
- Change the order of the optimization rules #124335
- ESQL: Remove estimated row size assertion #122762 (issue: #121535)
- ES|QL: Fix scoring for full text functions #124540
-
Fix early termination in
LuceneSourceOperator
#123197 - Fix function registry concurrency issues on constructor #123492 (issue: #123430)
- Implicit numeric casting for CASE/GREATEST/LEAST #122601 (issue: #121890)
- Lazy collection copying during node transform #124424
- Reduce iteration complexity for plan traversal #123427
- Revive inlinestats #122257
- Revive some more of inlinestats functionality #123589
- Use a must boolean statement when pushing down to Lucene when scoring is also needed #124001 (issue: #123967)
- Engine
- Highlighting
-
-
Restore V8 REST compatibility around highlight
force_source
parameter #124873
-
Restore V8 REST compatibility around highlight
- Indices APIs
- Infra/Core
-
- Fix system data streams to be restorable from a snapshot #124651 (issue: #89261)
- Have create index return a bad request on poor formatting #123761
- Include data streams when converting an existing resource to a system resource #121392
-
Prevent rare starvation bug when using scaling
EsThreadPoolExecutor
with empty core pool size. #124732 (issue: #124667) - System Index Migration Failure Results in a Non-Recoverable State #122326
- System data streams are not being upgraded in the feature migration API #124884 (issue: #122949)
- Ingest Node
- Machine Learning
-
-
Add
ElasticInferenceServiceCompletionServiceSettings
#123155 - Add enterprise license check to inference action for semantic text fields #122293
- Avoid potentially throwing calls to Task#getDescription in model download #124527
- Fix serialising the inference update request #122278
-
Migrate
model_version
tomodel_id
when parsing persistent elser inference endpoints #124769 (issue: #124675) - Retry on streaming errors #123076
- Set Connect Timeout to 5s #123272
-
[Inference API] Fix output stream ordering in
InferenceActionProxy
#124225
-
Add
- Mapping
- Ranking
-
- Fix LTR query feature with phrases (and two-phase) queries #125103
- Search
-
-
Do not let
ShardBulkInferenceActionFilter
unwrap / rewrap ESExceptions #123890 -
Don’t generate stacktrace in
TaskCancelledException
#125002 -
Fix concurrency issue in
ScriptSortBuilder
#123757 -
Handle search timeout in
SuggestPhase
#122357 (issue: #122186) - Let MLTQuery throw IAE when no analyzer is set #124662 (issue: #124562)
-
Do not let
- Snapshot/Restore
- Suggesters
- Transform
- Vector Search
Enhancements
edit- Authorization
-
- Do not fetch reserved roles from native store when Get Role API is called #121971
- Data streams
- Downsampling
- ES|QL
-
-
Allow skip shards with
_tier
and_index
in ES|QL #123728 - ES|QL - Add scoring for full text functions disjunctions #121793
-
Fix Driver status iterations and
cpuTime
#123290 (issue: #122967) -
Push down
StartsWith
andEndsWith
functions to Lucene #123381 (issue: #123067) -
Reuse child
outputSet
inside the plan where possible #124611
-
Allow skip shards with
- Infra/CLI
-
- Ignore _JAVA_OPTIONS #124843
- Infra/Core
-
- Improve size limiting string message #122427
- Infra/REST API
-
- Indicate when errors represent timeouts #124936
- Ingest Node
New features
edit- ES|QL
-
- Initial support for unmapped fields #119886
- Search
Upgrades
edit- Infra/Core
-
- Permanently switch from Java SecurityManager to Entitlements. The Java SecurityManager has been deprecated since Java 17, and it is now completely disabled in Java 24. In order to retain an similar level of protection, Elasticsearch implemented its own protection mechanism, Entitlements. Starting with this version, Entitlements will permanently replace the Java SecurityManager. #124865
- Packaging
-
- Update bundled JDK to Java 24 #125159
- Security
-
- Bump nimbus-jose-jwt to 10.0.2 #124544
- Snapshot/Restore
-
- Upgrade AWS SDK to v1.12.746 #122431
Elasticsearch version 9.0.0-beta1
editBreaking changes
editThe following changes in Elasticsearch 9.0 might affect your applications and prevent them from operating normally. Before upgrading to 9.0, review these changes and take the described steps to mitigate the impact.
Aggregations changes
editRemove date histogram boolean support
Details
Elasticsearch no longer allows running Date Histogram aggregations over boolean fields. Instead, use Terms aggregation for boolean fields.
Impact
We expect the impact to be minimal, as this never produced good results, and has been deprecated for years.
Analysis changes
editSnowball stemmers have been upgraded
Details
Lucene 10 ships with an upgrade of its Snowball stemmers. For details see https://github.com/apache/lucene/issues/13209. Users using Snowball stemmers that are experiencing changes in search behaviour on existing data are advised to reindex.
Impact
The upgrade should generally provide improved stemming results. Small changes in token analysis can lead to mismatches with previously index data, so existing indices using Snowball stemmers as part of their analysis chain should be reindexed.
The "german2" snowball stemmer is now an alias for the "german" stemmer
Details
Lucene 10 has merged the improved "german2" snowball language stemmer with the "german" stemmer. For Elasticsearch, "german2" is now a deprecated alias for "german". This may results in slightly different tokens being generated for terms with umlaut substitution (like "ue" for "ü" etc…)
Impact
Replace usages of "german2" with "german" in analysis configuration. Old indices that use the "german" stemmer should be reindexed if possible.
The persian analyzer has stemmer by default
Details
Lucene 10 has added a final stemming step to its PersianAnalyzer that Elasticsearch exposes as persian analyzer. Existing indices will keep the old non-stemming behaviour while new indices will see the updated behaviour with added stemming. Users that wish to maintain the non-stemming behaviour need to define their own analyzer as outlined in Persion analyzer. Users that wish to use the new stemming behaviour for existing indices will have to reindex their data.
Impact
Indexing with the persian analyzer will produce slightly different tokens. Users should check if this impacts their search results. If they wish to maintain the legacy non-stemming behaviour they can define their own analyzer equivalent as explained in Persian analyzer.
The Korean dictionary for Nori has been updated
Details
Lucene 10 ships with an updated Korean dictionary (mecab-ko-dic-2.1.1). For details see https://github.com/apache/lucene/issues/11452. Users experiencing changes in search behaviour on existing data are advised to reindex.
Impact
The change is small and should generally provide better analysis results. Existing indices for full-text use cases should be reindexed though.
Cluster and node setting changes
editConfiguring a bind DN in an LDAP or Active Directory (AD) realm without a corresponding bind password will prevent node from starting
Details
For LDAP or AD authentication realms, setting a bind DN (via the xpack.security.authc.realms.ldap.*.bind_dn
or xpack.security.authc.realms.active_directory.*.bind_dn
realm settings) without a bind password is a misconfiguration that may prevent successful authentication to the node. Nodes will fail to start if a bind DN is specified without a password.
Impact
If you have a bind DN configured for an LDAP or AD authentication realm, set a bind password for LDAP or Active Directory. Configuring a bind DN without a password prevents the misconfigured node from starting.
Deprecated tracing.apm.* settings got removed.
Details
Deprecated tracing.apm.*
settings got removed, use respective telemetry.*
/ telemetry.tracing.*
settings instead.
Impact
9.x nodes will refuse to start if any such setting (including secret settings) is still present.
Limit ByteSizeUnit
to 2 decimals
Details
In the past, byte values like 1.25 mb
were allowed but deprecated. Now, values with up to two decimal places are allowed, unless the unit is bytes, in which case no decimals are allowed. Values with too many decimal places result in an error.
Impact
Values with more than two decimal places, like 0.123 mb
will be rejected as an error, where in the past, they’d be accepted with a deprecation warning.
Minimum shard balancer threshold is now 1.0
Details
Earlier versions of Elasticsearch accepted any non-negative value for cluster.routing.allocation.balance.threshold
, but values smaller than 1.0
do not make sense and have been ignored since version 8.6.1. From 9.0.0 these nonsensical values are now forbidden.
Impact
Do not set cluster.routing.allocation.balance.threshold
to a value less than 1.0
.
Remove TLSv1.1 from default protocols
Details
TLSv1.1 is no longer enabled by default. Prior to version 9.0, Elasticsearch would attempt to enable TLSv1.1 if the JDK supported it. In most cases, including all cases where Elasticsearch 8 was running with the bundled JDK, the JDK would not support TLSv1.1, so that protocol would not be available in Elasticsearch. However, if Elasticsearch was running on an old JDK or a JDK that have been reconfigured to support TLSv1.1, then the protocol would automatically be available within Elasticsearch. As of Elasticsearch 9.0, this is no longer true. If you wish to enable TLSv1.1 then you must enable it within the JDK and also enable it within Elasticsearch by using the ssl.supported_protocols
setting.
Impact
Most users will not be impacted. If your Elastisearch 8 cluster was using a custom JDK and you relied on TLSv1.1, then you will need to explicitly enable TLSv1.1 within Elasticsearch (as well as enabling it within your JDK)
Remove client.type
setting
Details
The node setting client.type
has been ignored since the node client was removed in 8.0. The setting is now removed.
Impact
Remove the client.type
setting from elasticsearch.yml
Remove cluster.routing.allocation.disk.watermark.enable_for_single_data_node
setting
Details
Prior to 7.8, whenever a cluster had only a single data node, the watermarks would not be respected. In order to change this in 7.8+ in a backwards compatible way, we introduced the cluster.routing.allocation.disk.watermark.enable_for_single_data_node
node setting. The setting was deprecated in 7.14 and was made to accept only true in 8.0
Impact
No known end user impact
Remove deprecated xpack.searchable.snapshot.allocate_on_rolling_restart
setting
Details
The xpack.searchable.snapshot.allocate_on_rolling_restart
setting was created as an escape-hatch just in case relying on the cluster.routing.allocation.enable=primaries
setting for allocating searchable snapshots during rolling restarts had some unintended side-effects. It has been deprecated since 8.2.0.
Impact
Remove xpack.searchable.snapshot.allocate_on_rolling_restart
from your settings if present.
Remove unsupported legacy value for discovery.type
Details
Earlier versions of Elasticsearch had a discovery.type
setting which permitted values that referred to legacy discovery types. From v9.0.0 onwards, the only supported values for this setting are multi-node
(the default) and single-node
.
Impact
Remove any value for discovery.type
from your elasticsearch.yml
configuration file.
Index setting changes
editRemove the ability to read frozen indices
Details
The ability to read frozen indices has been removed. (Frozen indices are no longer useful due to improvements in heap memory usage. The ability to freeze indices was removed in 8.0.)
Impact
Users must unfreeze any frozen indices before upgrading.
Ingest changes
editRemove ecs
option on user_agent
processor
Details
The user_agent
ingest processor no longer accepts the ecs
option. (It was previously deprecated and ignored.)
Impact
Users should stop using the ecs
option when creating instances of the user_agent
ingest processor. The option will be removed from existing processors stored in the cluster state on upgrade.
Remove ignored fallback option on GeoIP processor
Details
The option fallback_to_default_databases on the geoip ingest processor has been removed. (It was deprecated and ignored since 8.0.0.)
Impact
Customers should stop remove the noop fallback_to_default_databases option on any geoip ingest processors.
Logging changes
editDeprecation logging value change for "data_stream.dataset" and "event.dataset"
Details
This change modifies the "data_stream.dataset" and "event.dataset" value for deprecation logging
to use the value elasticsearch.deprecation
instead of deprecation.elasticsearch
. This is now
consistent with other values where the name of the service is the first part of the key.
Impact
If you are directly consuming deprecation logs for "data_stream.dataset" and "event.dataset" and filtering on
this value, you will need to update your filters to use elasticsearch.deprecation
instead of
deprecation.elasticsearch
.
Logs changes
editConditionally enable logsdb by default
Details
Logsdb will be enabled by default for data streams matching with logs-- pattern.
If upgrading from 8.x to 9.x and data streams matching with log-- do exist,
then Logsdb will not be enabled by default.
Impact
Logsdb reduce storage footprint in Elasticsearch for logs, but there are side effects
to be taken into account that are described in the Logsdb docs.
Mapping changes
editRemove support for type, fields, copy_to and boost in metadata field definition
Details
The type, fields, copy_to and boost parameters are no longer supported in metadata field definition starting with version 9.
Impact
Users providing type, fields, copy_to or boost as part of metadata field definition should remove them from their mappings.
Turn _source
meta fieldmapper’s mode attribute into a no-op
Details
The mode
mapping attribute of _source
metadata field mapper has been turned into a no-op. Instead the index.mapping.source.mode
index setting should be used to configure source mode.
Impact
Configuring the mode
attribute for the _source
meta field mapper will have no effect on indices created with Elasticsearch 9.0.0 or later. Note that _source.mode
configured on indices before upgrading to 9.0.0 or later will remain efficive after upgrading.
Packaging changes
editDisable machine learning on macOS x86_64
Details
The machine learning plugin is permanently disabled on macOS x86_64. For the last three years Apple has been selling hardware based on the arm64 architecture, and support will increasingly focus on this architecture in the future. Changes to upstream dependencies of Elastic’s machine learning functionality have made it unviable for Elastic to continue to build machine learning on macOS x86_64.
Impact
To continue to use machine learning functionality on macOS please switch to an arm64 machine (Apple silicon). Alternatively, it will still be possible to run Elasticsearch with machine learning enabled in a Docker container on macOS x86_64.
REST API changes
editApply more strict parsing of actions in bulk API
Details
Previously, the following classes of malformed input were deprecated but not rejected in the action lines of the a bulk request: missing closing brace; additional keys after the action (which were ignored); additional data after the closing brace (which was ignored). They will now be considered errors and rejected.
Impact
Users must provide well-formed input when using the bulk API. (They can request REST API compatibility with v8 to get the previous behaviour back as an interim measure.)
Change most Elasticsearch timeouts to 429 response instead of 5xx
Details
When a timeout occurs in most REST requests, whether via a per-request timeout, or a system default, the request would return a 5xx response code. The response code from those APIs when a timeout occurs is now 429.
Impact
Adjust any code relying on retrying on 5xx responses for timeouts to look for a 429 response code and inspect the response to determine whether a timeout occured.
Error JSON structure has changed when detailed errors are disabled
Details
This change modifies the JSON format of error messages returned to REST clients
when detailed messages are turned off.
Previously, JSON returned when an exception occurred, and http.detailed_errors.enabled: false
was set,
just consisted of a single "error"
text field with some basic information.
Setting http.detailed_errors.enabled: true
(the default) changed this field
to an object with more detailed information.
With this change, non-detailed errors now have the same structure as detailed errors. "error"
will now always
be an object with, at a minimum, a "type"
and "reason"
field. Additional fields are included when detailed
errors are enabled.
To use the previous structure for non-detailed errors, use the v8 REST API.
Impact
If you have set http.detailed_errors.enabled: false
(the default is true
)
the structure of JSON when any exceptions occur now matches the structure when
detailed errors are enabled.
To use the previous structure for non-detailed errors, use the v8 REST API.
Remove any references to org.elasticsearch.core.RestApiVersion#V_7
Details
This PR removes all references to V_7 in the Rest API. V7 features marked for deprecation have been removed.
Impact
This change is breaking for any external plugins/clients that rely on the V_7 enum or deprecated version 7 functionality
Remove cluster state from /_cluster/reroute
response
Details
The POST /_cluster/reroute
API no longer returns the cluster state in its response. The ?metric
query parameter to this API now has no effect and its use will be forbidden in a future version.
Impact
Cease usage of the ?metric
query parameter when calling the POST /_cluster/reroute
API.
Remove deprecated local attribute from alias APIs
Details
The following APIs no longer accept the ?local
query parameter: GET /_alias
, GET /_aliases
, GET /_alias/{name}
, HEAD /_alias/{name}
, GET /{index}/_alias
, HEAD /{index}/_alias
, GET /{index}/_alias/{name}
, HEAD /{index}/_alias/{name}
, GET /_cat/aliases
, and GET /_cat/aliases/{alias}
. This parameter has been deprecated and ignored since version 8.12.
Impact
Cease usage of the ?local
query parameter when calling the listed APIs.
Remove legacy params from range query
Details
The deprecated range query parameters to
, from
, include_lower
, and include_upper
are no longer supported.
Impact
Users should use lt
, lte
, gt
, and gte
query parameters instead.
Remove old _knn_search
tech preview API in v9
Details
The original, tech-preview api for vector search, _knn_search
, has been removed in v9. For all vector search operations, you should utilize the _search
endpoint.
Impact
The _knn_search
API is now inaccessible without providing a compatible-with flag for v8.
Remove support for deprecated force_source
highlighting parameter
Details
The deprecated highlighting force_source
parameter is no longer supported.
Impact
Users should remove usages of the force_source
parameter from their search requests.
Remove unfreeze REST endpoint
Details
The /{index}/_unfreeze
REST endpoint is no longer supported. This API was deprecated, and the corresponding /{index}/_freeze
endpoint was removed in 8.0.
Impact
None, since it is not possible to have a frozen index in a version which is readable by Elasticsearch 9.0
Removing support for types field in watcher search
Details
Previously, setting the input.search.request.types
field in the payload when creating a watcher to an empty array was allowed, although it resulted in a deprecation warning and had no effect (and any value other than an empty array would result in an error). Now, support for this field is entirely removed, and the empty array will also result in an error.
Impact
Users should stop setting this field (which did not have any effect anyway).
Restrict Connector APIs to manage/monitor_connector privileges
Details
Connector APIs now enforce the manage_connector and monitor_connector privileges (introduced in 8.15), replacing the previous reliance on index-level permissions for .elastic-connectors and .elastic-connectors-sync-jobs in API calls.
Impact
Connector APIs now require manage_connector and monitor_connector privileges
Set allow_partial_search_results=true by default
Details
Before this change, in case of shard failures, EQL queries always returned an error. With this change, they will keep running and will return partial results.
Impact
EQL queries that would previously fail due to shard failures, will now succeed and return partial results. The previous defaults can be restored by setting xpack.eql.default_allow_partial_results
cluster setting to false
or setting with allow_partial_search_results
to false
in the query request.
Search changes
editAdjust random_score
default field to _seq_no
field
Details
When providing a seed parameter to a random_score function in the function_score query but NOT providing a field, the default field is switched from _id to _seq_no.
Impact
The random scoring and ordering may change when providing a seed and not providing a field to a random_score function.
Change semantic text to act like a normal text field
Details
The previous semantic_text format used a complex subfield structure in _source to store the embeddings. This complicated interactions/integrations with semantic_text fields and _source in general. This new semantic_text format treats it as a normal text field, where the field’s value in _source is the value assigned by the user.
Impact
Users who parsed the subfield structure of the previous semantic_text format in _source will need to update their parsing logic. The new format does not directly expose the chunks and embeddings generated from the input text. The new format will be applied to all new indices, any existing indices will continue to use the previous format.
Transform changes
editRemove data_frame_transforms
roles
Details
data_frame_transforms_admin
and data_frame_transforms_user
were deprecated in Elasticsearch 7 and are being removed in Elasticsearch 9. data_frame_transforms_admin
is now transform_admin
. data_frame_transforms_user
is now transform_user
. Users must call the _update
API to replace the permissions on the Transform before the Transform can be started.
Impact
Transforms created with either the data_frame_transforms_admin
or the data_frame_transforms_user
role will fail to start. The Transform will remain in a stopped
state, and its health will be red while displaying permission failures.
The following pull requests relate to breaking changes:
- Aggregations
-
- Remove date histogram boolean support #118484
- Allocation
- Analysis
- Authentication
-
- Configuring a bind DN in an LDAP or Active Directory (AD) realm without a corresponding bind password will prevent node from starting #118366
- Cluster Coordination
-
-
Remove unsupported legacy value for
discovery.type
#112903
-
Remove unsupported legacy value for
- EQL
-
- Set allow_partial_search_results=true by default #120267
- Extract&Transform
-
- Restrict Connector APIs to manage/monitor_connector privileges #119863
- Highlighting
-
-
Remove support for deprecated
force_source
highlighting parameter #116943
-
Remove support for deprecated
- Indices APIs
- Infra/Core
- Infra/Logging
- Infra/Metrics
-
- Deprecated tracing.apm.* settings got removed. #119926
- Infra/REST API
- Ingest Node
- Logs
- Machine Learning
-
- Disable machine learning on macOS x86_64 #104125
- Mapping
- Search
- Snapshot/Restore
-
-
Remove deprecated
xpack.searchable.snapshot.allocate_on_rolling_restart
setting #114202
-
Remove deprecated
- TLS
-
- Remove TLSv1.1 from default protocols #121731
- Transform
-
-
Remove
data_frame_transforms
roles #117519
-
Remove
- Vector Search
-
-
Remove old
_knn_search
tech preview API in v9 #118104
-
Remove old
- Watcher
-
- Removing support for types field in watcher search #120748
Deprecations
editThe following functionality has been deprecated in Elasticsearch 9.0 and will be removed in a future version. While this won’t have an immediate impact on your applications, we strongly encourage you to take the described steps to update your code after upgrading to 9.0.
To find out if you are using any deprecated functionality, enable deprecation logging.
Authorization deprecations
editDeprecate certificate based remote cluster security model
Details
-| Certificate-based remote cluster security model is deprecated and will be removed in a future major version. Users are encouraged to migrate remote clusters from certificate to API key authentication. The API key-based security model is preferred way to configure remote clusters, as it allows to follow security best practices when setting up remote cluster connections and defining fine-grained access control.
Impact
-| If you have configured remote clusters with certificate-based security model, you should migrate remote clusters from certificate to API key authentication. Configuring a remote cluster using certificate authentication, generates a warning in the deprecation logs.
ES|QL deprecations
editDrop support for brackets from METADATA syntax
Details
Please describe the details of this change for the release notes. You can use asciidoc.
Impact
Please describe the impact of this change to users
REST API deprecations
editDocument _type
deprecated on simulate pipeline API
Details
Passing a document with a _type
property is deprecated in the /_ingest/pipeline/{id}/_simulate
and /_ingest/pipeline/_simulate
APIs.
Impact
Users should already have stopped using mapping types, which were deprecated in Elasticsearch 7. This deprecation warning will fire if they specify mapping types on documents pass to the simulate pipeline API.
Deprecate elser service
Details
The elser
service of the inference API will be removed in an upcoming release. Please use the elasticsearch service instead.
Impact
In the current version there is no impact. In a future version, users of the elser
service will no longer be able to use it, and will be required to use the elasticsearch
service to access elser through the inference API.
Rollup deprecations
editEmit deprecation warning when executing one of the rollup APIs
Details
Rollup is already deprecated since 8.11.0 via documentation and since 8.15.0 it is no longer possible to create new rollup jobs in clusters without rollup usage. This change updates the rollup APIs to emit a deprecation warning.
Impact
Returning a deprecation warning when using one of the rollup APIs.
Transform deprecations
editRemoving index alias creation for deprecated transforms notification index
Details
As part of the migration from 7.x to 8.x, the .data-frame-notifications-1
index was deprecated and replaced with the .transform-notifications-000002
index. The index is no longer created by default, all writes are directed to the new index, and any clusters with the deprecated index will have an alias created to ensure that reads are still retrieving data that was written to the index before the migration to 8.x. This change removes the alias from the deprecated index in 9.x. Any clusters with the alias present will retain it, but it will not be created on new clusters.
Impact
No known end user impact.
The following pull requests relate to deprecations:
Bug fixes
edit- Aggregations
- Analysis
- CAT APIs
-
- Fix cat_component_templates documentation #120487
- CRUD
- Data streams
-
-
Avoid updating settings version in
MetadataMigrateToDataStreamService
when settings have not changed #118704 - Block-writes cannot be added after read-only #119007 (issue: #119002)
- Ensure removal of index blocks does not leave key with null value #122246
- Match dot prefix of migrated DS backing index with the source index #120042
- Refresh source index before reindexing data stream index #120752 (issue: #120314)
-
ReindexDataStreamIndex
bug in assertion caused by reference equality #121325
-
Avoid updating settings version in
- Downsampling
- EQL
-
- Fix JOIN command validation (not supported) #122011
- ES|QL
-
-
Allow the data type of
null
in filters #118324 (issue: #116351) - Correct line and column numbers of missing named parameters #120852
- Drop null columns in text formats #117643 (issue: #116848)
- Fix ENRICH validation for use of wildcards #121911
- Fix ROUND() with unsigned longs throwing in some edge cases #119536
- Fix TDigestState.read CB leaks #114303 (issue: #114194)
- Fix TopN row size estimate #119476 (issue: #106956)
-
Fix
AbstractShapeGeometryFieldMapperTests
#119265 (issue: #119201) - Fix a bug in TOP #121552
- Fix async stop sometimes not properly collecting result #121843 (issue: #121249)
- Fix attribute set equals #118823
- Fix double lookup failure on ESQL #115616 (issue: #111398)
- Fix queries with document level security on lookup indexes #120617 (issue: #120509)
- Fix writing for LOOKUP status #119296 (issue: #119086)
-
Limit memory usage of
fold
#118602 - Limit size of query #117898
- Remove redundant sorts from execution plan #121156
- Revert unwanted ES|QL lexer changes from PR #120354 #120538
-
Allow the data type of
- Health
-
-
Do not recommend increasing
max_shards_per_node
#120458
-
Do not recommend increasing
- Indices APIs
- Inference
-
- [Inference API] Put back legacy EIS URL setting #121207
- Infra/Core
- Infra/Logging
-
-
Move
SlowLogFieldProvider
instantiation to node construction #117949
-
Move
- Infra/Metrics
-
-
Make
randomInstantBetween
always return value in range [minInstant,maxInstant]
#114177
-
Make
- Infra/Plugins
- Infra/REST API
- Infra/Scripting
-
- Register mustache size limit setting #119291
- Infra/Settings
- Ingest Node
- Logs
-
- Always check if index mode is logsdb #116922
- Machine Learning
-
- Change format for Unified Chat #121396
- Fix get all inference endponts not returning multiple endpoints sharing model deployment #121821
- Fixing bedrock event executor terminated cache issue #118177 (issue: #117916)
- Fixing bug setting index when parsing Google Vertex AI results #117287
- Updating Inference Update API documentation to have the correct PUT method #121048
- Wait for up to 2 seconds for yellow status before starting search #115938 (issues: #107777, #105955, #107815, #112191)
- [Inference API] Fix unique ID message for inference ID matches trained model ID #119543 (issue: #111312)
- Mapping
-
- Enable New Semantic Text Format Only On Newly Created Indices #121556
-
Fix propagation of dynamic mapping parameter when applying
copy_to
#121109 (issue: #113049) - Fix realtime get of nested fields with synthetic source #119575 (issue: #119553)
- Merge field mappers when updating mappings with [subobjects:false] #120370 (issue: #120216)
-
Tweak
copy_to
handling in synthetic_source
to account for nested objects #120974 (issue: #120831)
- Network
- Search
-
- Catch and handle disconnect exceptions in search #115836
-
Fix leak in
DfsQueryPhase
and introduce search disconnect stress test #116060 (issue: #115056) - Fix/QueryBuilderBWCIT_muted_test #117831
- In this pr, a 400 error is returned when _source / _seq_no / _feature / _nested_path / _field_names is requested, rather a 5xx #117229
- Inconsistency in the _analyzer api when the index is not included #115930
- Remove duplicate code in ESIntegTestCase #120799
- SearchStatesIt failures reported by CI #117618 (issues: #116617, #116618)
- Skip fetching _inference_fields field in legacy semantic_text format #121720
- Test/107515 restore template with match only text mapper it fail #120392 (issue: #107515)
- Updated Date Range to Follow Documentation When Assuming Missing Values #112258 (issue: #111484)
-
CrossClusterIT
testCancel
failure #117750 (issue: #108061) -
SearchServiceTests.testParseSourceValidation
failure #117963
- Snapshot/Restore
- Store
-
-
Do not capture
ClusterChangedEvent
inIndicesStore
call to #onClusterStateShardsClosed #120193
-
Do not capture
- Vector Search
- Watcher
Enhancements
edit- Allocation
- Authentication
-
-
Allow
SSHA-256
for API key credential hash #120997
-
Allow
- Authorization
-
- Allow kibana_system user to manage .reindexed-v8-internal.alerts indices #118959
-
Grant necessary Kibana application privileges to
reporting_user
role #118058 - Make reserved built-in roles queryable #117581
-
[Security Solution] Add
create_index
tokibana_system
role for index/DS.logs-endpoint.action.responses-*
#115241 -
[Security Solution] allows
kibana_system
user to manage .reindexed-v8-* Security Solution indices #119054
- CCS
-
- Resolve/cluster allows querying for cluster info only (no index expression required) #119898
- CRUD
- Cluster Coordination
-
-
Include
clusterApplyListener
in long cluster apply warnings #120087
-
Include
- Data streams
-
- Add action to create index from a source index #118890
- Add index and reindex request settings to speed up reindex #119780
-
Add rest endpoint for
create_from_source_index
#119250 -
Add sanity check to
ReindexDatastreamIndexAction
#120231 - Adding a migration reindex cancel API #118291
- Adding get migration reindex status #118267
- Consistent mapping for OTel log and event bodies #120547
- Filter deprecated settings when making dest index #120163
- Ignore closed indices for reindex #120244
- Improve how reindex data stream index action handles api blocks #120084
-
Initial work on
ReindexDatastreamIndexAction
#116996 -
Make
requests_per_second
configurable to throttle reindexing #120207 - Optimized index sorting for OTel logs #119504
- Report Deprecated Indices That Are Flagged To Ignore Migration Reindex As A Warning #120629
- Update data stream deprecations warnings to new format and filter searchable snapshots from response #118562
- Distributed
- EQL
- ES|QL
-
- Add ES|QL cross-cluster query telemetry collection #119474
-
Add a
LicenseAware
interface for licensed Nodes #118931 (issue: #117405) -
Add a
PostAnalysisAware,
distribute verification #119798 - Add a standard deviation aggregating function: STD_DEV #116531
- Add cluster level reduction #117731
- Add nulls support to Categorize #117655
- Async search responses have CCS metadata while searches are running #117265
- Check for early termination in Driver #118188
-
Do not serialize
EsIndex
in plan #119580 - ESQL - Remove restrictions for disjunctions in full text functions #118544
-
ESQL - enabling scoring with METADATA
_score
#113120 - ESQL Add esql hash function #117989
- ESQL Support IN operator for Date nanos #119772 (issue: #118578)
-
ESQL: CATEGORIZE as a
BlockHash
#114317 - ESQL: Enterprise license enforcement for CCS #118102
- ES|QL: Partial result on demand for async queries #118122
- Enable KQL function as a tech preview #119730
- Enable LOOKUP JOIN in non-snapshot builds #121193 (issue: #121185)
- Enable node-level reduction by default #119621
- Enable physical plan verification #118114
- Ensure cluster string could be quoted #120355
- Esql - Support date nanos in date extract function #120727 (issue: #110000)
- Esql - support date nanos in date format function #120143 (issue: #109994)
- Esql Support date nanos on date diff function #120645 (issue: #109999)
- Esql bucket function for date nanos #118474 (issue: #118031)
- Esql compare nanos and millis #118027 (issue: #116281)
- Esql implicit casting for date nanos #118697 (issue: #118476)
-
Extend
TranslationAware
to all pushable expressions #120192 - Hash functions #118938
-
Implement a
MetricsAware
interface #121074 - LOOKUP JOIN using field-caps for field mapping #117246
- Lookup join on multiple join fields not yet supported #118858
- Move scoring in ES|QL out of snapshot #120354
-
Optimize ST_EXTENT_AGG for
geo_shape
andcartesian_shape
#119889 - Push down filter passed lookup join #118410
- Resume Driver on cancelled or early finished #120020
- Rewrite TO_UPPER/TO_LOWER comparisons #118870 (issue: #118304)
- ST_EXTENT_AGG optimize envelope extraction from doc-values for cartesian_shape #118802
- Smarter field caps with subscribable listener #116755
- Support partial sort fields in TopN pushdown #116043 (issue: #114515)
- Support some stats on aggregate_metric_double #120343 (issue: #110649)
- Take named parameters for identifier and pattern out of snapshot #121850
- Term query for ES|QL #117359
-
Update grammar to rely on
indexPattern
instead of identifier in join target #120494 -
_score
should not be a reserved attribute in ES|QL #118435 (issue: #118460)
- Engine
- Experiences
-
- Integrate IBM watsonx to Inference API for re-ranking task #117176
- Geo
-
- Optimize indexing points with index and doc values set to true #120271
- Health
-
-
Increase
replica_unassigned_buffer_time
default from 3s to 5s #112834
-
Increase
- ILM+SLM
-
-
Add a
replicate_for
option to the ILMsearchable_snapshot
action #119003
-
Add a
- Indices APIs
-
-
Add
remove_index_block
arg to_create_from
api #120548 -
Remove index blocks by default in
create_from
#120643 -
Run
TransportGetComponentTemplateAction
on local node #116868 -
Run
TransportGetComposableIndexTemplate
on local node #119830 -
Run
TransportGetIndexTemplateAction
on local node #119837 - introduce new categories for deprecated resources in deprecation API #120505
-
Add
- Inference
-
- Add version prefix to Inference Service API path #117095
- Remove Elastic Inference Service feature flag and deprecated setting #120842
- Update sparse text embeddings API route for Inference Service #118025
- [Elastic Inference Service] Add ElasticInferenceService Unified ChatCompletions Integration #118871
- Infra/CLI
-
- Strengthen encryption for elasticsearch-keystore tool to AES 256 #119749
- Infra/Circuit Breakers
-
- Add link to Circuit Breaker "Data too large" exception message #113561
- Infra/Core
- Infra/Metrics
-
-
Add
ensureGreen
test method for use withadminClient
#113425
-
Add
- Infra/REST API
-
-
A new query parameter
?include_source_on_error
was added for create / index, update and bulk REST APIs to control if to include the document source in the error response in case of parsing errors. The default value istrue
. #120725
-
A new query parameter
- Infra/Scripting
-
-
Add a
mustache.max_output_size_bytes
setting to limit the length of results from mustache scripts #114002
-
Add a
- Infra/Settings
- Ingest Node
-
-
Optimize
IngestCtxMap
construction #120833 -
Optimize
IngestDocMetadata
isAvailable
#120753 -
Optimize
IngestDocument
FieldPath
allocation #120573 - Optimize some per-document hot paths in the geoip processor #120824
- Returning ignored fields in the simulate ingest API #117214
-
Run
GetPipelineTransportAction
on local node #120445 -
Run
TransportGetEnrichPolicyAction
on local node #121124 - Run template simulation actions on local node #120038
-
Optimize
- License
-
-
Bump
TrialLicenseVersion
to allow starting new trial on 9.0 #120198
-
Bump
- Logs
-
- Add LogsDB option to route on sort fields #116687
- Add a new index setting to skip recovery source when synthetic source is enabled #114618
- Configure index sorting through index settings for logsdb #118968 (issue: #118686)
- Optimize loading mappings when determining synthetic source usage and whether host.name can be sorted on. #120055
- Machine Learning
-
- Add DeBERTa-V2/V3 tokenizer #111852
- Add Inference Unified API for chat completions for OpenAI #117589
- Add Jina AI API to do inference for Embedding and Rerank models #118652
- Add enterprise license check for Inference API actions #119893
-
Adding chunking settings to
IbmWatsonxService
#114914 - Adding default endpoint for Elastic Rerank #117939
- Adding endpoint creation validation for all task types to remaining services #115020
- Check for presence of error object when validating streaming responses from integrations in the inference API #118375
- Ignore failures from renormalizing buckets in read-only index #118674
- Inference duration and error metrics #115876
- Migrate stream to core error parsing #120722
- Remove all mentions of eis and gateway and deprecate flags that do #116692
- Remove deprecated sort from reindex operation within dataframe analytics procedure #117606
-
Retry on
ClusterBlockException
on transform destination index #118194 - [Inference API] fix spell words: covertToString to convertToString #119922
- Mapping
-
- Add Optional Source Filtering to Source Loaders #113827
- Network
- Ranking
-
- Set default reranker for text similarity reranker to Elastic reranker #120551
- Recovery
- Reindex
-
- Change Reindexing metrics unit from millis to seconds #115721
- Search
-
-
Add match support for
semantic_text
fields #117839 -
Add support for
sparse_vector
queries againstsemantic_text
fields #118617 -
Add support for knn vector queries on
semantic_text
fields #119011 - Adding linear retriever to support weighted sums of sub-retrievers #120222
- Address and remove any references of RestApiVersion version 7 #117572
-
Feat: add a user-configurable timeout parameter to the
_resolve/cluster
API #120542 - Make semantic text part of the text family #119792
- Only aggregations require at least one shard request #115314
-
Prevent data nodes from sending stack traces to coordinator when
error_trace=false
#118266 - Propagate status codes from shard failures appropriately #118016 (issue: #118482)
-
Add match support for
- Security
-
-
Add refresh
.security
index call between security migrations #114879
-
Add refresh
- Snapshot/Restore
-
-
Add IMDSv2 support to
repository-s3
#117748 (issue: #105135) - Expose operation and request counts separately in repository stats #117530 (issue: #104443)
-
Retry
S3BlobContainer#getRegister
on all exceptions #114813 - Retry internally when CAS upload is throttled [GCS] #120250 (issue: #116546)
- Track shard snapshot progress during node shutdown #112567
-
Add IMDSv2 support to
- Suggesters
-
- Extensible Completion Postings Formats #111494
- TSDB
-
- Increase field limit for OTel metrics to 10 000 #120591
- Transform
- Vector Search
New features
edit- CRUD
-
- Metrics for indexing failures due to version conflicts #119067
- ES|QL
-
- ESQL - Add Match function options #120360
- ESQL - Allow full text functions disjunctions for non-full text functions #120291
- ESQL: Enable async get to support formatting #111104 (issue: #110926)
- Expand type compatibility for match function and operator #117555
- ST_EXTENT aggregation #117451 (issue: #104659)
- Support ST_ENVELOPE and related (ST_XMIN, ST_XMAX, ST_YMIN, ST_YMAX) functions #116964 (issue: #104875)
- Extract&Transform
- Highlighting
-
- Add Highlighter for Semantic Text Fields #118064
- Infra/Core
-
- Infrastructure for assuming cluster features in the next major version #118143
- Machine Learning
- Mapping
-
-
Add option to store
sparse_vector
outside_source
#117917
-
Add option to store
- Ranking
- Relevance
-
- Add Multi-Field Support for Semantic Text Fields #120128
- Vector Search
Upgrades
edit- Infra/Core
- Machine Learning
- Search