layout | title | nav_order | permalink |
---|---|---|---|
default |
Breaking changes |
5 |
/breaking-changes/ |
Migrating from Elasticsearch OSS version 6.8 to OpenSearch version 1.x will fail when a cluster contains any document that includes more than 10,000 nested JSON objects across all fields. Elasticsearch version 7.0 introduced the index.mapping.nested_objects.limit
setting to guard against out-of-memory errors and assigned the setting a default of 10000
. OpenSearch adopted this setting at its inception and enforces the limitation on nested JSON objects. However, because the setting is not present in Elasticsearch 6.8 and not recognized by this version, migration to OpenSearch 1.x can result in incompatibility issues that block shard relocation between Elasticsearch 6.8 and OpenSearch versions 1.x when the number of nested JSON objects in any document surpasses the default limit.
Therefore, we recommend evaluating your data for these limits before attempting to migrate from Elasticsearch 6.8.
The type
parameter has been removed from all OpenSearch API endpoints. Instead, indexes can be categorized by document type. For more details, see issue #1940.
Non-inclusive terms are deprecated in version 2.x and will be permanently removed in OpenSearch 3.0. We are using the following replacements:
- "Whitelist" is now "Allow list"
- "Blacklist" is now "Deny list"
- "Master" is now "Cluster Manager"
In OpenSearch 2.0, the Alerting plugin is now integrated with new plugins for Notifications. If you want to continue to use the notification action in the Alerting plugin, install the new backend plugins notifications-core
and notifications
. If you want to manage notifications in OpenSearch Dashboards, use the new notificationsDashboards
plugin. For more information, see Notifications on the OpenSearch documentation page.
A Lucene upgrade forced OpenSearch to drop support for JDK 8. As a consequence, the Java high-level REST client no longer supports JDK 8. Restoring JDK 8 support is currently an opensearch-java
proposal #156 and will require removing OpenSearch core as a dependency from the Java client (issue #262).
OpenSearch 2.5 contains a bug fix that corrects the behavior of the case_insensitive
parameter for the wildcard
query on text fields. As a result, a wildcard query on text fields that ignored case sensitivity and erroneously returned results prior to the bug fix will not return the same results. For more information, see issue #8711.
The text_embedding
processor no longer replaces nested values like _ingest._value
when evaluating fields like title_tmp:_ingest._value.title_embedding
. Instead, you must directly specify the nested key as books.title:title_embedding
to achieve the desired output. For more information, see issue #1243.
The minimum supported JDK version is JDK 21.
Access to system indexes through the REST API is no longer provided. This functionality has been deprecated since OpenSearch 1.x. For more information, see issue #7936.
The document ID length limit of 512 bytes is now consistently enforced across all APIs, including the Bulk API. Previously, the Bulk API allowed document IDs longer than 512 bytes. For more information, see issue #6595.
The configuration of empty node roles using environment variables has been fixed. Setting node.roles=
using environment variables now properly configures a coordinating-only node, consistent with the opensearch.yml
configuration. For more information, see issue #3412.
New default limits have been introduced for JSON processing (using the Jackson library) throughout OpenSearch:
- The maximum nesting depth of JSON objects and arrays is limited to 1,000 levels.
- The maximum length of JSON property names is limited to 50,000 units (bytes or chars, depending on the input source).
These limits help prevent potential memory issues and denial-of-service attacks. For more information, see issue #11278.
A new index.query.max_nested_depth
setting has been introduced with a default value of 20
and a minimum value of 1
, limiting the maximum number of nesting levels for nested
queries. For more information, see issue #3268.
The following deprecated thread pool settings have been removed:
thread_pool.test.max_queue_size
thread_pool.test.min_queue_size
For more information, see issue #2595.
The index.store.hybrid.mmap.extensions
setting has been removed as part of improvements to hybridfs
file handling. For more information, see pull request #9392.
The transport-nio
plugin has been removed. Netty remains the standard network framework for both node-to-node and client-to-server communication. For more information, see issue #16887.
The format of indexing buffer values in the Nodes API response has changed:
total_indexing_buffer_in_bytes
now displays raw bytes (for example,53687091
).total_indexing_buffer
now displays human-readable format (for example,51.1mb
).
For more information, see pull request #17070.
The camel case PathHierarchy
tokenizer name has been deprecated in favor of the snake case path_hierarchy
. For more information, see pull request #10894.
The Blake2b hash implementation now uses the salt parameter correctly, which will result in different (though correct) hash values compared to previous versions. For more information, see pull request #5089.
The following deprecated settings have been removed from the k-NN plugin:
knn.plugin.enabled
settingindex.knn.algo_param.ef_construction
index settingindex.knn.algo_param.m
index settingindex.knn.space_type
index setting
The NMSLIB engine is now deprecated. We recommend using the Faiss or Lucene engines instead.
For more information, see pull request #2564.
The performance-analyzer-rca
agent has been removed. We recommend transitioning to the Telemetry plugin for performance monitoring and analysis. The Telemetry plugin, using the OpenTelemetry framework, allows for seamless integration with lightweight open-source agents in order to publish performance metrics to observability stores. For more information, see issue #591.
- The OpenSearch query domain-specific language (DSL) response format has been removed.
DELETE
statement support has been removed.- The
plugins.sql.delete.enabled
setting has been removed. - The legacy Spark Connector module has been deprecated. For information about connecting to Spark, see
async-query-core
. - Deprecated OpenDistro endpoints and legacy settings with the
opendistro
prefix have been removed. - The
plugins.sql.pagination.api
has been removed and the Scroll API has been deprecated. Pagination now defaults to Point in Time.
For more information, see issue #3248.
-
Discover experience:
- The
discover:newExperience
setting has been removed. - The DataGrid table feature has been removed.
For more information, see pull request #9511.
- The
-
Visualizations: The
dashboards-visualizations
plugin (including Gantt chart visualization) has been removed. We recommend transitioning to:- Vega visualization for flexible visualization needs.
- Trace analytics for trace-related use cases.
For more information, see issue #430.
The legacy notebooks feature has been removed from dashboards-observability
. Key changes include the following:
- Legacy notebooks (previously stored in the
.opensearch-observability
index) are no longer supported. - Only notebooks stored in the
.kibana
index (introduced in version 2.17) are supported. - You must migrate your notebooks to the new storage system before upgrading to version 3.0.
For more information, see issue #2350.