# OpenSearch changelog > A distributed search and analytics suite. - Vendor: OpenSearch Software Foundation - Category: Developer Tools - Official site: https://opensearch.org - Tracked by: What's New (https://whatsnew.fyi/product/opensearch) - Harvested from: GitHub (opensearch-project/OpenSearch) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### 3.8.0 - Date: 2026-08-05 - Version: 3.8.0 - Original notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.8.0 - Permalink: https://whatsnew.fyi/product/opensearch/releases/3.8.0 - **added** — Add API to modify a data stream's backing indices via POST /_data_stream/_modify - **added** — Add multivalue_doc_count aggregation that returns the number of documents with two or more values - **added** — Add pull-based ingestion from Hive tables via new ingestion-hive plugin - **added** — Add support for HTTP/3 on the client side via JDK HttpClient - **added** — Add gRPC support for Point-in-Time (PIT) create and delete operations - **added** — Add gRPC API support for extra_field_values in bulk requests - **added** — Add cross-cluster streaming support to the remote cluster client via Arrow Flight - **added** — Add coordinator-side index-level field domain pruning before can_match for faster time-range queries - **added** — Add bulkscorer script processing interface in ScriptScore query for bulk scoring optimizations - **added** — Add process-wide ObjectInputFilter to reject Java deserialization by default, gated behind bootstrap.serial_filter setting - **added** — Add cluster-level default setting for delayed shard allocation timeout cluster.routing.allocation.unassigned.node_left.delayed_timeout - **changed** — Add HTTP request body decompression (gzip/deflate) to reactor-netty4 transport - **changed** — Add cross-setting validator to prevent cluster-manager crash loop when both balance factors are set to zero - **changed** — Add support for double, int, and long types in ExtraFieldValue for gRPC bulk indexing - **changed** — Add timing logs for repository create, update, and delete operations - **deprecated** — Deprecate RestClient in favor of the internal HTTP client - **changed** — Disable Mustache partial template resolution in search templates - **changed** — Use binary serialization for resource usage headers to reduce CPU overhead on the search path - **fixed** — Fix OpenSearchTimeoutException to return HTTP 504 instead of 500 - **fixed** — Fix ClassCastException on malformed mappings in create index to return 400 instead of 500 ##### Version 3.8.0 Release Notes Compatible with OpenSearch and OpenSearch Dashboards version 3.8.0 ###### Features * Add API to modify a data stream's backing indices (`POST /_data_stream/_modify`) ([#22487](https://github.com/opensearch-project/OpenSearch/pull/22487)) * Add `multivalue_doc_count` aggregation that returns the number of documents with two or more values ([#20472](https://github.com/opensearch-project/OpenSearch/pull/20472)) * Add pull-based ingestion from Hive tables via new `ingestion-hive` plugin ([#21700](https://github.com/opensearch-project/OpenSearch/pull/21700)) * Add support for HTTP/3 on the client side via JDK HttpClient ([#21718](https://github.com/opensearch-project/OpenSearch/pull/21718)) * Add gRPC support for Point-in-Time (PIT) create and delete operations ([#22105](https://github.com/opensearch-project/OpenSearch/pull/22105)) * Add gRPC API support for `extra_field_values` in bulk requests ([#21907](https://github.com/opensearch-project/OpenSearch/pull/21907)) * Add cross-cluster streaming support to the remote cluster client via Arrow Flight ([#22359](https://github.com/opensearch-project/OpenSearch/pull/22359)) * Add coordinator-side index-level field domain pruning before `can_match` for faster time-range queries ([#21865](https://github.com/opensearch-project/OpenSearch/pull/21865)) * Add bulkscorer script processing interface in ScriptScore query for bulk scoring optimizations ([#22423](https://github.com/opensearch-project/OpenSearch/pull/22423)) * Add process-wide ObjectInputFilter to reject Java deserialization by default, gated behind `bootstrap.serial_filter` setting ([#22073](https://github.com/opensearch-project/OpenSearch/pull/22073)) * Add cluster-level default setting for delayed shard allocation timeout (`cluster.routing.allocation.unassigned.node_left.delayed_timeout`) ([#22379](https://github.com/opensearch-project/OpenSearch/pull/22379)) ###### Enhancements * Add HTTP request body decompression (gzip/deflate) to reactor-netty4 transport ([#22382](https://github.com/opensearch-project/OpenSearch/pull/22382)) * Add cross-setting validator to prevent cluster-manager crash loop when both balance factors are set to zero ([#22391](https://github.com/opensearch-project/OpenSearch/pull/22391)) * Add support for double, int, and long types in ExtraFieldValue for gRPC bulk indexing ([#22058](https://github.com/opensearch-project/OpenSearch/pull/22058)) * Add timing logs for repository create, update, and delete operations ([#22489](https://github.com/opensearch-project/OpenSearch/pull/22489)) * Add parent action name to `ProcessorGenerationContext` for conditional system-generated processor logic ([#22195](https://github.com/opensearch-project/OpenSearch/pull/22195)) * Add getter for remote translog transfer tracker to enable plugin access to tracking metrics ([#22453](https://github.com/opensearch-project/OpenSearch/pull/22453)) * Deprecate `RestClient` in favor of the internal HTTP client ([#22116](https://github.com/opensearch-project/OpenSearch/pull/22116)) * Disable Mustache partial template resolution in search templates ([#22438](https://github.com/opensearch-project/OpenSearch/pull/22438)) * Use binary serialization for resource usage headers to reduce CPU overhead on the search path ([#21230](https://github.com/opensearch-project/OpenSearch/pull/21230)) * Preserve resolved search pipeline id and inline pipeline source through query rewrite ([#22501](https://github.com/opensearch-project/OpenSearch/pull/22501)) * Fork `GET _aliases` serialization to MANAGEMENT thread pool to avoid blocking transport threads ([#21954](https://github.com/opensearch-project/OpenSearch/pull/21954)) * Strengthen `scroll_id` validation to prevent OOM from crafted scroll IDs ([#22396](https://github.com/opensearch-project/OpenSearch/pull/22396)) * Add depth tracking to recursive deserialization to prevent StackOverflowError ([#22404](https://github.com/opensearch-project/OpenSearch/pull/22404)) _[Truncated at 4000 characters — full notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.8.0]_ ### 2.19.6 - Date: 2026-07-06 - Version: 2.19.6 - Original notes: https://github.com/opensearch-project/OpenSearch/releases/tag/2.19.6 - Permalink: https://whatsnew.fyi/product/opensearch/releases/2.19.6 - **fixed** — Fix hang in bulk request when index is deleted during primary phase - **fixed** — Fix case insensitive and escaped query on wildcard fields - **fixed** — Fix array index out of bounds exception with wildcard fields and aggregations - **fixed** — Harden circuit breaker and failure handling logic to prevent negative estimated limits in query result consumer - **fixed** — Prevent negative fielddata stats by guarding against stale removals after shard reallocation - **changed** — Update Netty to 4.1.135.Final - **changed** — Update bundled JDK to JDK 21.0.11+10 ##### Version 2.19.6 Release Notes Compatible with OpenSearch and OpenSearch Dashboards version 2.19.6 ###### Bug Fixes * Fix hang in bulk request when index is deleted during primary phase ([#21305](https://github.com/opensearch-project/OpenSearch/pull/21305)) * Fix case insensitive and escaped query on wildcard fields ([#20870](https://github.com/opensearch-project/OpenSearch/pull/20870)) * Fix array index out of bounds exception with wildcard fields and aggregations ([#20862](https://github.com/opensearch-project/OpenSearch/pull/20862)) * Harden circuit breaker and failure handling logic to prevent negative estimated limits in query result consumer ([#20769](https://github.com/opensearch-project/OpenSearch/pull/20769)) * Prevent negative fielddata stats by guarding against stale removals after shard reallocation ([#22016](https://github.com/opensearch-project/OpenSearch/pull/22016)) ###### Maintenance * Update Netty to 4.1.135.Final ([#21968](https://github.com/opensearch-project/OpenSearch/pull/21968)) * Bump org.apache.avro:avro to 1.12.1 ([#22350](https://github.com/opensearch-project/OpenSearch/pull/22350)) * Bump Bouncy Castle (bcprov/bcpkix-jdk18on) to 1.84 ([#22296](https://github.com/opensearch-project/OpenSearch/pull/22296)) * Bump ZooKeeper to 3.9.5 ([#22296](https://github.com/opensearch-project/OpenSearch/pull/22296)) * Bump plexus-utils to 3.6.1 ([#22296](https://github.com/opensearch-project/OpenSearch/pull/22296)) * Bump log4j to 2.25.4 ([#22292](https://github.com/opensearch-project/OpenSearch/pull/22292)) * Bump Jetty to 9.4.58 ([#22292](https://github.com/opensearch-project/OpenSearch/pull/22292)) * Bump maven-model to 3.9.16 ([#22292](https://github.com/opensearch-project/OpenSearch/pull/22292)) * Bump plexus-xml to 3.0.1 ([#22292](https://github.com/opensearch-project/OpenSearch/pull/22292)) * Bump commons-configuration2 to 2.15.0 ([#22292](https://github.com/opensearch-project/OpenSearch/pull/22292)) * Bump jsoup to 1.22.2 ([#22292](https://github.com/opensearch-project/OpenSearch/pull/22292)) * Bump Jackson to 2.18.8 ([#22292](https://github.com/opensearch-project/OpenSearch/pull/22292)) * Bump reactor-netty to 1.2.18 ([#22292](https://github.com/opensearch-project/OpenSearch/pull/22292)) * Bump reactor-core to 3.7.19 ([#22292](https://github.com/opensearch-project/OpenSearch/pull/22292)) * Update bundled JDK to JDK 21.0.11+10 ([#21419](https://github.com/opensearch-project/OpenSearch/pull/21419)) ### 3.7.0 - Date: 2026-06-09 - Version: 3.7.0 - Original notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.7.0 - Permalink: https://whatsnew.fyi/product/opensearch/releases/3.7.0 - **added** — Dynamic properties support for pattern-based field definitions without cluster state mapping updates - **added** — Pluggable data format engine with DataFormatAwareEngine for multi-format indexing - **added** — Lucene engine implementation for pluggable data formats - **added** — Merge support for Parquet data format plugin via streaming k-way merge sort - **added** — Directory and IndexInput layers for WritableWarm tiered storage - **added** — Server-side implementation for tiering status APIs (GetTieringStatus and ListTieringStatus) - **added** — Server-side implementation for HotToWarm, WarmToHot, and CancelTiering APIs - **added** — Prefetch settings and stored fields prefetch for WritableWarm tiered storage - **added** — Slow logs, per-query metrics, and migration metrics for WritableWarm tiered storage - **added** — Module wiring and integration tests for WritableWarm tiered storage - **added** — Tiered object storage crate for warm node file routing - **added** — Event-driven scheduler and stage execution for analytics engine - **added** — Coordinator-side DataFusion reduce with streaming Arrow batches - **added** — Distributed aggregation with partial/final mode for analytics engine - **added** — Distributed join planning and execution for analytics engine - **added** — PPL append command support with multi-child stage runtime for Union - **added** — PPL dedup command support via ROW_NUMBER window function - **added** — PPL eventstats and streamstats window function support - **added** — PPL top and rare command support via window functions - **added** — PPL parse command with regex mode via Rust UDFs ##### Version 3.7.0 Release Notes Compatible with OpenSearch and OpenSearch Dashboards version 3.7.0 ###### Features * Add dynamic properties support for pattern-based field definitions without cluster state mapping updates ([#20816](https://github.com/opensearch-project/OpenSearch/pull/20816)) * Add pluggable data format engine with DataFormatAwareEngine for multi-format indexing ([#21181](https://github.com/opensearch-project/OpenSearch/pull/21181)) * Add Lucene engine implementation for pluggable data formats ([#21299](https://github.com/opensearch-project/OpenSearch/pull/21299)) * Add merge support for Parquet data format plugin via streaming k-way merge sort ([#21079](https://github.com/opensearch-project/OpenSearch/pull/21079)) * Add directory and IndexInput layers for WritableWarm tiered storage ([#21178](https://github.com/opensearch-project/OpenSearch/pull/21178)) * Add server-side implementation for tiering status APIs (GetTieringStatus and ListTieringStatus) ([#21220](https://github.com/opensearch-project/OpenSearch/pull/21220)) * Add server-side implementation for HotToWarm, WarmToHot, and CancelTiering APIs ([#21295](https://github.com/opensearch-project/OpenSearch/pull/21295)) * Add prefetch settings and stored fields prefetch for WritableWarm tiered storage ([#21285](https://github.com/opensearch-project/OpenSearch/pull/21285)) * Add slow logs, per-query metrics, and migration metrics for WritableWarm tiered storage ([#21332](https://github.com/opensearch-project/OpenSearch/pull/21332)) * Add module wiring and integration tests for WritableWarm tiered storage ([#21427](https://github.com/opensearch-project/OpenSearch/pull/21427)) * Add tiered object storage crate for warm node file routing ([#21204](https://github.com/opensearch-project/OpenSearch/pull/21204)) * Add event-driven scheduler and stage execution for analytics engine ([#21242](https://github.com/opensearch-project/OpenSearch/pull/21242)) * Add coordinator-side DataFusion reduce with streaming Arrow batches ([#21356](https://github.com/opensearch-project/OpenSearch/pull/21356)) * Add distributed aggregation with partial/final mode for analytics engine ([#21457](https://github.com/opensearch-project/OpenSearch/pull/21457)) * Add distributed join planning and execution for analytics engine ([#21639](https://github.com/opensearch-project/OpenSearch/pull/21639)) * Add PPL `append` command support with multi-child stage runtime for Union ([#21474](https://github.com/opensearch-project/OpenSearch/pull/21474)) * Add PPL `dedup` command support via ROW_NUMBER window function ([#21622](https://github.com/opensearch-project/OpenSearch/pull/21622)) * Add PPL `eventstats` and `streamstats` window function support ([#21734](https://github.com/opensearch-project/OpenSearch/pull/21734)) * Add PPL `top` and `rare` command support via window functions ([#21593](https://github.com/opensearch-project/OpenSearch/pull/21593)) * Add PPL `parse` command with regex mode via Rust UDFs ([#21573](https://github.com/opensearch-project/OpenSearch/pull/21573)) * Add PPL `rex` command with sed and extract modes ([#21550](https://github.com/opensearch-project/OpenSearch/pull/21550)) * Add PPL `spath` command with auto-extract mode via json_extract_all UDF ([#21664](https://github.com/opensearch-project/OpenSearch/pull/21664)) * Add 7 PPL JSON scalar functions to analytics engine route ([#21513](https://github.com/opensearch-project/OpenSearch/pull/21513)) * Add 23 PPL datetime scalar functions to analytics engine route ([#21556](https://github.com/opensearch-project/OpenSearch/pull/21556)) * Add 14 additional PPL datetime functions (Wave A) including strftime, date_format, maketime ([#21582](https://github.com/opensearch-project/OpenSearch/pull/21582)) * Add 30+ PPL math scalar functions to analytics engine ([#21520](https://github.com/opensearch-project/OpenSearch/pull/21520)) * Add PPL string scalar functions to analytics engine (18 functions) ([ _[Truncated at 4000 characters — full notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.7.0]_ ### 2.19.5 - Date: 2026-05-13 - Version: 2.19.5 - Original notes: https://github.com/opensearch-project/OpenSearch/releases/tag/2.19.5 - Permalink: https://whatsnew.fyi/product/opensearch/releases/2.19.5 - **fixed** — Add case sensitivity as an argument to XContentMapValues.filter - **fixed** — Fix segment replication failure during rolling restart - **changed** — Bump netty from 4.1.125.Final to 4.1.131.Final - **changed** — Bump log4j from 2.21.0 to 2.25.3 ##### Version 2.19.5 Release Notes Compatible with OpenSearch and OpenSearch Dashboards version 2.19.5 ###### Bug Fixes * Add case sensitivity as an argument to XContentMapValues.filter ([#19976](https://github.com/opensearch-project/OpenSearch/pull/19976)) * Fix segment replication failure during rolling restart ([#20498](https://github.com/opensearch-project/OpenSearch/pull/20498)) ###### Infrastructure * Update wrapper github workflow version ([#20748](https://github.com/opensearch-project/OpenSearch/pull/20748)) ###### Maintenance * Bulk update of HDFS test fixture dependencies ([#20768](https://github.com/opensearch-project/OpenSearch/pull/20768)) * Bump shadow-gradle-plugin from 8.3.9 to 9.3.1 ([#20569](https://github.com/opensearch-project/OpenSearch/pull/20569)) * Bump netty from 4.1.125.Final to 4.1.131.Final ([#20744](https://github.com/opensearch-project/OpenSearch/pull/20744)) * Bump log4j from 2.21.0 to 2.25.3 ([#20308](https://github.com/opensearch-project/OpenSearch/pull/20308)) ### 3.6.0 - Date: 2026-04-07 - Version: 3.6.0 - Original notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.6.0 - Permalink: https://whatsnew.fyi/product/opensearch/releases/3.6.0 - **added** — Add bitmap64 query support - **added** — Add warmup phase for pull-based ingestion to prevent serving stale data before catching up with the streaming source - **added** — Implement field_mapping ingestion message mapper for pull-based ingestion - **added** — Add mapper_settings support and field_mapping mapper type for pull-based ingestion - **added** — Add index warmer support for replica shards using segment replication - **added** — Add indices to search request slow log for easier request identification - **added** — Add node-level JVM and CPU runtime metrics following OpenTelemetry semantic conventions - **added** — Add new Sensitive setting property for tiering dynamic settings authorization - **added** — Add adaptive shard selection for bulk writes on append-only indices - **added** — Add support for expected remote cluster name validation in CCS sniff mode - **added** — Add search_settings support to WLM workload groups with initial timeout setting - **added** — Add scroll API support for workload management rule-based autotagging - **added** — Add stream request flag to SearchRequestContext for plugin consumption - **added** — Add intra-segment support for single-value metric aggregations (sum, min, max, avg, stats, cardinality, value_count) - **added** — Add ref_path support for package-based Hunspell dictionary loading with multi-tenant isolation - **added** — Add indexer interface to decouple IndexShard from Engine for pluggable engine architectures - **changed** — Remove experimental tag for pull-based ingestion, marking it as public API - **changed** — Support Docker distribution builds for ppc64le, arm64, and s390x architectures - **changed** — Fallback to Netty HTTP client when AWS CRT client is unavailable on the target platform - **changed** — Expose wrapped scorer in ProfileScorer for plugin access to custom scorer methods - **changed** — Remove X-Request-Id format restrictions and make maximum length configurable - **changed** — Make telemetry Tags immutable with allocation-efficient factories and content-based equality - **changed** — Prevent criteria field updates for context-aware indices to simplify version management - **changed** — Use ReadAdviseByContext for MMapDirectory instead of Lucene default read advise - **fixed** — Fix copy_to functionality for geo_point fields with object and array values - **fixed** — Fix field_caps returning empty results for disable_objects mappings and field name corruption - **fixed** — Fix terms lookup subquery to use cluster max_clause_count setting instead of hardcoded fallback - **fixed** — Fix terms aggregation performance regression on high-cardinality fields by adding a max cardinality setting - **fixed** — Fix terms aggregation performance regression using segment-to-global ordinals mapping - **fixed** — Fix array_index_out_of_bounds_exception with wildcard and aggregations under concurrent access - **fixed** — Add range validations in query builder and field mapper - **fixed** — Fix synonym_graph filter failure with word_delimiter_graph by handling analyzer dependency ordering - **fixed** — Fix index template pattern collision false positives for multi-wildcard patterns - **fixed** — Fix SecurityException when using opensearch.cgroups.hierarchy.override setting - **fixed** — Fix SLF4J component error caused by slf4j-api version mismatch with log4j binding - **fixed** — Fix JSON escaping in task details log metadata - **fixed** — Fix ProfileScorer.getChildren() to expose wrapped scorer in the scorer tree hierarchy ##### Version 3.6.0 Release Notes Compatible with OpenSearch and OpenSearch Dashboards version 3.6.0 ###### Features * Add bitmap64 query support ([#20606](https://github.com/opensearch-project/OpenSearch/pull/20606)) * Add warmup phase for pull-based ingestion to prevent serving stale data before catching up with the streaming source ([#20526](https://github.com/opensearch-project/OpenSearch/pull/20526)) * Implement field_mapping ingestion message mapper for pull-based ingestion ([#20729](https://github.com/opensearch-project/OpenSearch/pull/20729)) * Add mapper_settings support and field_mapping mapper type for pull-based ingestion ([#20722](https://github.com/opensearch-project/OpenSearch/pull/20722)) * Remove experimental tag for pull-based ingestion, marking it as public API ([#20704](https://github.com/opensearch-project/OpenSearch/pull/20704)) ###### Enhancements * Add index warmer support for replica shards using segment replication ([#20650](https://github.com/opensearch-project/OpenSearch/pull/20650)) * Add indices to search request slow log for easier request identification ([#20588](https://github.com/opensearch-project/OpenSearch/pull/20588)) * Add node-level JVM and CPU runtime metrics following OpenTelemetry semantic conventions ([#20844](https://github.com/opensearch-project/OpenSearch/pull/20844)) * Add new `Sensitive` setting property for tiering dynamic settings authorization ([#20901](https://github.com/opensearch-project/OpenSearch/pull/20901)) * Add adaptive shard selection for bulk writes on append-only indices ([#20065](https://github.com/opensearch-project/OpenSearch/pull/20065)) * Add support for expected remote cluster name validation in CCS sniff mode ([#20532](https://github.com/opensearch-project/OpenSearch/pull/20532)) * Add `search_settings` support to WLM workload groups with initial `timeout` setting ([#20536](https://github.com/opensearch-project/OpenSearch/pull/20536)) * Add scroll API support for workload management rule-based autotagging ([#20151](https://github.com/opensearch-project/OpenSearch/pull/20151)) * Add stream request flag to SearchRequestContext for plugin consumption ([#20530](https://github.com/opensearch-project/OpenSearch/pull/20530)) * Support Docker distribution builds for ppc64le, arm64, and s390x architectures ([#20678](https://github.com/opensearch-project/OpenSearch/pull/20678)) * Fallback to Netty HTTP client when AWS CRT client is unavailable on the target platform ([#20698](https://github.com/opensearch-project/OpenSearch/pull/20698)) * Add intra-segment support for single-value metric aggregations (sum, min, max, avg, stats, cardinality, value_count) ([#20503](https://github.com/opensearch-project/OpenSearch/pull/20503)) * Expose wrapped scorer in ProfileScorer for plugin access to custom scorer methods ([#20549](https://github.com/opensearch-project/OpenSearch/pull/20549)) * Fix ProfileScorer.getChildren() to expose wrapped scorer in the scorer tree hierarchy ([#20607](https://github.com/opensearch-project/OpenSearch/pull/20607)) * Remove X-Request-Id format restrictions and make maximum length configurable ([#21048](https://github.com/opensearch-project/OpenSearch/pull/21048)) * Make telemetry Tags immutable with allocation-efficient factories and content-based equality ([#20788](https://github.com/opensearch-project/OpenSearch/pull/20788)) * Add `ref_path` support for package-based Hunspell dictionary loading with multi-tenant isolation ([#20840](https://github.com/opensearch-project/OpenSearch/pull/20840)) * Prevent criteria field updates for context-aware indices to simplify version management ([#20250](https://github.com/opensearch-project/OpenSearch/pull/20250)) * Add indexer interface to decouple IndexShard from Engine for pluggable engine architectures ([#20675](https://github.com/opensearch-project/OpenSearch/pull/20675)) * Use `ReadAdviseByContext` for MMapDirectory instead of Lucene default read advise ([#21062](https://github.com/opensearch-proje _[Truncated at 4000 characters — full notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.6.0]_ ### 3.5.0 - Date: 2026-02-12 - Version: 3.5.0 - Original notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.5.0 - Permalink: https://whatsnew.fyi/product/opensearch/releases/3.5.0 - **added** — Support for fields containing dots in their name as literals - **added** — Support for forward translog reading - **added** — Public getter method in SourceFieldMapper to return excluded field - **added** — Relax jar hell check when extended plugins share transitive dependencies - **added** — Public getter method in SourceFieldMapper to return included field - **added** — Support for HTTP/3 server side - **added** — Circuit breaker support for gRPC transport to prevent out-of-memory errors - **added** — Index-level-encryption support for snapshots and remote-store - **added** — Support for hll field mapper to support cardinality rollups - **added** — Tracing support for StreamingRestChannel - **added** — New libs/netty4 module to share common implementation between netty-based plugins and modules - **added** — Validation to make crypto store settings immutable - **added** — Concurrent translog recovery to accelerate segment replication primary promotion - **added** — X-Request-Id to uniquely identify a search request - **added** — TopN selection logic for streaming terms aggregations - **added** — Support for Intra Segment Search - **added** — AdditionalCodecs and EnginePlugin::getAdditionalCodecs hook to allow additional Codec registration - **changed** — Handle custom metadata files in subdirectory-store - **changed** — Add support for missing proto fields in GRPC FunctionScore and Highlight - **changed** — Use compact object headers with JDK25+ - **fixed** — Fix Snapshot rename replacement unbounded length rename ##### Version 3.5.0 Release Notes Compatible with OpenSearch and OpenSearch Dashboards version 3.5.0 ###### Added - Add support for fields containing dots in their name as literals ([#19958](https://github.com/opensearch-project/OpenSearch/pull/19958)) - Add support for forward translog reading ([#20163](https://github.com/opensearch-project/OpenSearch/pull/20163)) - Added public getter method in `SourceFieldMapper` to return excluded field ([#20205](https://github.com/opensearch-project/OpenSearch/pull/20205)) - Add integ test for simulating node join left event when data node cluster state publication lag because the cluster applier thread being busy ([#19907](https://github.com/opensearch-project/OpenSearch/pull/19907)). - Relax jar hell check when extended plugins share transitive dependencies ([#20103](https://github.com/opensearch-project/OpenSearch/pull/20103)) - Added public getter method in `SourceFieldMapper` to return included field ([#20290](https://github.com/opensearch-project/OpenSearch/pull/20290)) - Support for HTTP/3 (server side) ([#20017](https://github.com/opensearch-project/OpenSearch/pull/20017)) - Add circuit breaker support for gRPC transport to prevent out-of-memory errors ([#20203](https://github.com/opensearch-project/OpenSearch/pull/20203)) - Add index-level-encryption support for snapshots and remote-store ([#20095](https://github.com/opensearch-project/OpenSearch/pull/20095)) - Adding BackWardCompatibility test for remote publication enabled cluster ([#20221](https://github.com/opensearch-project/OpenSearch/pull/20221)) - Support for hll field mapper to support cardinality rollups ([#20129](https://github.com/opensearch-project/OpenSearch/pull/20129)) - Add tracing support for StreamingRestChannel ([#20361](https://github.com/opensearch-project/OpenSearch/pull/20361)) - Introduce new libs/netty4 module to share common implementation between netty-based plugins and modules (transport-netty4, transport-reactor-netty4) ([#20447](https://github.com/opensearch-project/OpenSearch/pull/20447)) - Add validation to make crypto store settings immutable ([#20123](https://github.com/opensearch-project/OpenSearch/pull/20123)) - Introduce concurrent translog recovery to accelerate segment replication primary promotion ([#20251](https://github.com/opensearch-project/OpenSearch/pull/20251)) - Update to `almalinux:10` ([#20482](https://github.com/opensearch-project/OpenSearch/pull/20482)) - Add X-Request-Id to uniquely identify a search request ([#19798](https://github.com/opensearch-project/OpenSearch/pull/19798)) - Added TopN selection logic for streaming terms aggregations ([#20481](https://github.com/opensearch-project/OpenSearch/pull/20481)) - Added support for Intra Segment Search ([#19704](https://github.com/opensearch-project/OpenSearch/pull/19704)) - Introduce AdditionalCodecs and EnginePlugin::getAdditionalCodecs hook to allow additional Codec registration ([#20411](https://github.com/opensearch-project/OpenSearch/pull/20411)) ###### Changed - Handle custom metadata files in subdirectory-store ([#20157](https://github.com/opensearch-project/OpenSearch/pull/20157)) - Add support for missing proto fields in GRPC FunctionScore and Highlight ([#20169](https://github.com/opensearch-project/OpenSearch/pull/20169)) - Ensure all modules are included in INTEG_TEST testcluster distribution ([#20241](https://github.com/opensearch-project/OpenSearch/pull/20241)) - Cleanup HttpServerTransport.Dispatcher in Netty tests ([#20160](https://github.com/opensearch-project/OpenSearch/pull/20160)) - Use compact object headers with JDK25+ ([#20392](https://github.com/opensearch-project/OpenSearch/pull/20392)) - Add `cluster.initial_cluster_manager_nodes` to testClusters OVERRIDABLE_SETTINGS ([#20348](https://github.com/opensearch-project/OpenSearch/pull/20348)) - Add BigInteger support for unsigned_long fields in gRPC transport ([#20346](https://github.com/opensearch-project/OpenSearch/pul _[Truncated at 4000 characters — full notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.5.0]_ ### 3.4.0 - Date: 2025-12-17 - Version: 3.4.0 - Original notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.4.0 - Permalink: https://whatsnew.fyi/product/opensearch/releases/3.4.0 - **added** — Allow setting index.creation_date on index creation and restore for plugin compatibility and migrations - **added** — Add support for a ForkJoinPool type - **added** — Add separate shard limit validation for local and remote indices - **added** — Use Lucene pack method for half_float and unsigned_long when using ApproximatePointRangeQuery - **added** — New cluster setting search.query.max_query_string_length_monitor_only - **added** — Add a mapper for context aware segments grouping criteria - **added** — Return full error for GRPC error response - **added** — Add support for repository with Server side encryption enabled and client side encryption as well based on a flag - **added** — Add pluggable gRPC interceptors with explicit ordering - **added** — Add BindableServices extension point to transport-grpc-spi - **added** — Add metrics for the merged segment warmer feature - **added** — Handle deleted documents for filter rewrite sub-aggregation optimization - **added** — Add bulk collect API for filter rewrite sub-aggregation optimization - **added** — Allow collectors take advantage of preaggregated data using collectRange API - **added** — Bulk collection logic for metrics and cardinality aggregations - **added** — Add pointer based lag metric in pull-based ingestion - **added** — Introduce internal API for retrieving metadata about requested indices from transport actions - **added** — Add cluster defaults for merge autoThrottle, maxMergeThreads, and maxMergeCount; add segment size filter to the merged segment warmer - **added** — Add build-tooling to run in FIPS environment - **added** — Add SMILE/CBOR/YAML document format support to Bulk GRPC endpoint - **changed** — Combining filter rewrite and skip list to optimize sub aggregation ##### Version 3.4.0 Release Notes Compatible with OpenSearch and OpenSearch Dashboards version 3.4.0 ###### Added - Allow setting index.creation_date on index creation and restore for plugin compatibility and migrations ([#19931](https://github.com/opensearch-project/OpenSearch/pull/19931)) - Add support for a ForkJoinPool type ([#19008](https://github.com/opensearch-project/OpenSearch/pull/19008)) - Add seperate shard limit validation for local and remote indices ([#19532](https://github.com/opensearch-project/OpenSearch/pull/19532)) - Use Lucene `pack` method for `half_float` and `unsigned_long` when using `ApproximatePointRangeQuery` ([#19553](https://github.com/opensearch-project/OpenSearch/pull/19553)) - New cluster setting search.query.max_query_string_length_monitor_only ([#19539](https://github.com/opensearch-project/OpenSearch/pull/19539)) - Add a mapper for context aware segments grouping criteria ([#19233](https://github.com/opensearch-project/OpenSearch/pull/19233)) - Return full error for GRPC error response ([#19568](https://github.com/opensearch-project/OpenSearch/pull/19568)) - Add support for repository with Server side encryption enabled and client side encryption as well based on a flag ([#19630](https://github.com/opensearch-project/OpenSearch/pull/19630)) - Add pluggable gRPC interceptors with explicit ordering([#19005](https://github.com/opensearch-project/OpenSearch/pull/19005)) - Add BindableServices extension point to transport-grpc-spi ([#19304](https://github.com/opensearch-project/OpenSearch/pull/19304)) - Add metrics for the merged segment warmer feature ([#18929](https://github.com/opensearch-project/OpenSearch/pull/18929)) - Handle deleted documents for filter rewrite sub-aggregation optimization ([#19643](https://github.com/opensearch-project/OpenSearch/pull/19643)) - Add bulk collect API for filter rewrite sub-aggregation optimization ([#19933](https://github.com/opensearch-project/OpenSearch/pull/19933)) - Allow collectors take advantage of preaggregated data using collectRange API ([#20009](https://github.com/opensearch-project/OpenSearch/pull/20009)) - Bulk collection logic for metrics and cardinality aggregations ([#20067](https://github.com/opensearch-project/OpenSearch/pull/20067)) - Add pointer based lag metric in pull-based ingestion ([#19635](https://github.com/opensearch-project/OpenSearch/pull/19635)) - Introduced internal API for retrieving metadata about requested indices from transport actions ([#18523](https://github.com/opensearch-project/OpenSearch/pull/18523)) - Add cluster defaults for merge autoThrottle, maxMergeThreads, and maxMergeCount; Add segment size filter to the merged segment warmer ([#19629](https://github.com/opensearch-project/OpenSearch/pull/19629)) - Add build-tooling to run in FIPS environment ([#18921](https://github.com/opensearch-project/OpenSearch/pull/18921)) - Add SMILE/CBOR/YAML document format support to Bulk GRPC endpoint ([#19744](https://github.com/opensearch-project/OpenSearch/pull/19744)) - Make test-suite runnable under FIPS compliance support ([#18491](https://github.com/opensearch-project/OpenSearch/pull/18491)) - Implement GRPC Search params `Highlight`and `Sort` ([#19868](https://github.com/opensearch-project/OpenSearch/pull/19868)) - Implement GRPC ConstantScoreQuery, FuzzyQuery, MatchBoolPrefixQuery, MatchPhrasePrefix, PrefixQuery, MatchQuery ([#19854](https://github.com/opensearch-project/OpenSearch/pull/19854)) - Add async periodic flush task support for pull-based ingestion ([#19878](https://github.com/opensearch-project/OpenSearch/pull/19878)) - Add support for context aware segments ([#19098](https://github.com/opensearch-project/OpenSearch/pull/19098)) - Implement GRPC FunctionScoreQuery ([#19888](https://github.com/opensearch-project/OpenSearch/pull/19888)) - Implement error_trace parameter for bulk requests ([#19985](https://github.com/opensearch-project/OpenSearch/pull/19985)) - Allow the truncate filter in normalizers ([#19778]( _[Truncated at 4000 characters — full notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.4.0]_ ### 2.19.4 - Date: 2025-11-06 - Version: 2.19.4 - Original notes: https://github.com/opensearch-project/OpenSearch/releases/tag/2.19.4 - Permalink: https://whatsnew.fyi/product/opensearch/releases/2.19.4 ##### Version 2.19.4 Release Notes Compatible with OpenSearch and OpenSearch Dashboards version 2.19.4 ###### Added * New cluster setting search.query.max_query_string_length ([#19491](https://github.com/opensearch-project/OpenSearch/pull/19491)) ###### Dependencies * Bump Apache Lucene to 9.12.3 ([#19444](https://github.com/opensearch-project/OpenSearch/pull/19444)) * Bump `org.bouncycastle:bc-fips` from 2.0.0 to 2.1.2 ([#19155](https://github.com/opensearch-project/OpenSearch/pull/19155)) * Bump `org.apache.commons:commons-lang3` from 3.14.0 to 3.18.0 ([#19155](https://github.com/opensearch-project/OpenSearch/pull/19155)) * Bump `org.bouncycastle:bcprov-jdk18on` from 1.78 to 1.79 ([#19155](https://github.com/opensearch-project/OpenSearch/pull/19155)) * Bump `org.bouncycastle:bcmail-jdk18on` from 1.78 to 1.79 ([#19155](https://github.com/opensearch-project/OpenSearch/pull/19155)) * Bump `org.bouncycastle:bcpkix-jdk18on` from 1.78 to 1.79 ([#19155](https://github.com/opensearch-project/OpenSearch/pull/19155)) * Bump `org.apache.tika` from 2.9.2 to 3.2.2 ([#19242](https://github.com/opensearch-project/OpenSearch/pull/19242)) * Bump `org.apache.commons:commons-compress` from 1.26.1 to 1.28.0 ([#19125](https://github.com/opensearch-project/OpenSearch/pull/19242)) * Bump `org.apache.commons:commonscodec` from 1.16.1 to 1.18.0 ([#19125](https://github.com/opensearch-project/OpenSearch/pull/19242)) * Replace commons-lang:commons-lang with org.apache.commons:commons-lang3 ([#19229](https://github.com/opensearch-project/OpenSearch/pull/19229)) * Bump netty from 4.1.121.Final to 4.1.125.Final ([#19270](https://github.com/opensearch-project/OpenSearch/pull/19270)) * Bump bouncycastle from 1.79 to 1.82 ([#19552](https://github.com/opensearch-project/OpenSearch/pull/19552)) * Bump `org.ajoberstar.grgit:grgit-core` from 5.2.1 to 5.3.2 ([#19606](https://github.com/opensearch-project/OpenSearch/pull/19606)) * Bump `reactor-netty` from 1.1.23 to 1.2.9 ([#19603](https://github.com/opensearch-project/OpenSearch/pull/19603)) * Bump `reactor` from 3.5.20 to 3.7.5 ([#19603](https://github.com/opensearch-project/OpenSearch/pull/19603)) * Bump `org.apache.hadoop:hadoop-minicluster` from 3.4.1 to 3.4.2 ([#19605](https://github.com/opensearch-project/OpenSearch/pull/19605)) * Bump `io.grpc` deps from 1.68.2 to 1.75.0 ([#19495](https://github.com/opensearch-project/OpenSearch/pull/19495)) * Bump `com.nimbusds:nimbus-jose-jwt` from 10.0.2 to 10.3 ([#19604](https://github.com/opensearch-project/OpenSearch/pull/19604)) * Exclude commons-lang and org.jsonschema2pojo from hadoop-miniclusters ([#19538](https://github.com/opensearch-project/OpenSearch/pull/19538)) ###### Fixed * Add task cancellation checks in aggregators ([#18426](https://github.com/opensearch-project/OpenSearch/pull/18426)) * Fix OOM due to large number of shard result buffering ([#19066](https://github.com/opensearch-project/OpenSearch/pull/19066)) * Fix QueryPhaseResultConsumer incomplete callback loops ([#19231](https://github.com/opensearch-project/OpenSearch/pull/19231)) * Use ScoreDoc instead of FieldDoc when creating TopScoreDocCollectorManager to avoid unnecessary conversion ([#18802](https://github.com/opensearch-project/OpenSearch/pull/18802)) * Fix IndexOutOfBoundsException when running include/exclude on non-existent prefix in terms aggregations ([#19637](https://github.com/opensearch-project/OpenSearch/pull/19637)) ###### Changed * Replace centos:8 with almalinux:8 since centos docker images are deprecated ([#19154](https://github.com/opensearch-project/OpenSearch/pull/19154)) * Allow plugins to copy folders into their config dir during installation ([#19343](https://github.com/opensearch-project/OpenSearch/pull/19343)) * Onboarding new maven snapshots publishing to s3 ([#19632](https://github.com/opensearch-project/OpenSearch/pull/19632)) ### 3.3.2 - Date: 2025-10-30 - Version: 3.3.2 - Original notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.3.2 - Permalink: https://whatsnew.fyi/product/opensearch/releases/3.3.2 ##### Version 3.3.2 Release Notes Compatible with OpenSearch 3.3.2 and OpenSearch Dashboards 3.3.0 ###### Fixed * [Star Tree] Fix sub-aggregator casting for search with profile=true ([#19652](https://github.com/opensearch-project/OpenSearch/pull/19652)) * [Java Agent] Allow JRT protocol URLs in protection domain extraction ([#19683](https://github.com/opensearch-project/OpenSearch/pull/19683)) * Fix bwc @timestamp upgrade issue by adding a version check on skip_list param ([#19671](https://github.com/opensearch-project/OpenSearch/pull/19671)) * Fix issue with updating core with a patch number other than 0 ([#19377](https://github.com/opensearch-project/OpenSearch/pull/19377)) * Fix IndexOutOfBoundsException when running include/exclude on non-existent prefix in terms aggregations ([#19637](https://github.com/opensearch-project/OpenSearch/pull/19637)) * Add S3Repository.LEGACY_MD5_CHECKSUM_CALCULATION to list of repository-s3 settings ([#19789](https://github.com/opensearch-project/OpenSearch/pull/19789)) ###### Dependencies * Bump ch.qos.logback modules from 1.5.18 to 1.5.20 in HDFS test fixture ([#19764](https://github.com/opensearch-project/OpenSearch/pull/19764)) * Bump org.bouncycastle:bc-fips from 2.1.1 to 2.1.2 ([#19817](https://github.com/opensearch-project/OpenSearch/pull/19817)) ### 3.3.1 - Date: 2025-10-22 - Version: 3.3.1 - Original notes: https://github.com/opensearch-project/OpenSearch/releases/tag/3.3.1 - Permalink: https://whatsnew.fyi/product/opensearch/releases/3.3.1 ##### Version 3.3.1 Release Notes OpenSearch 3.3.1 Only. ###### Fixed * Fix issue with updating core with a patch number other than 0 ([#19377](https://github.com/opensearch-project/OpenSearch/pull/19377)) * [Star Tree] Fix sub-aggregator casting for search with profile=true ([#19652](https://github.com/opensearch-project/OpenSearch/pull/19652)) * Fix bwc @timestamp upgrade issue by adding a version check on skip_list param ([#19671](https://github.com/opensearch-project/OpenSearch/pull/19671))