diff --git a/docs/reference/release-notes.asciidoc b/docs/reference/release-notes.asciidoc index 6a03ed03f2610..6f32b55c49af8 100644 --- a/docs/reference/release-notes.asciidoc +++ b/docs/reference/release-notes.asciidoc @@ -7,6 +7,7 @@ This section summarizes the changes in each release. * <> +* <> * <> * <> * <> @@ -72,6 +73,7 @@ This section summarizes the changes in each release. -- include::release-notes/8.16.0.asciidoc[] +include::release-notes/8.15.1.asciidoc[] include::release-notes/8.15.0.asciidoc[] include::release-notes/8.14.3.asciidoc[] include::release-notes/8.14.2.asciidoc[] diff --git a/docs/reference/release-notes/8.15.1.asciidoc b/docs/reference/release-notes/8.15.1.asciidoc new file mode 100644 index 0000000000000..f480172611164 --- /dev/null +++ b/docs/reference/release-notes/8.15.1.asciidoc @@ -0,0 +1,74 @@ +[[release-notes-8.15.1]] +== {es} version 8.15.1 + +Also see <>. + +[[known-issues-8.15.1]] +[float] +=== Known issues +* Elasticsearch will not start if custom role mappings are configured using the +`xpack.security.authc.realms.*.files.role_mapping` configuration option. As a workaround, custom role mappings +can be configured using the https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-role-mapping.html[REST API] (issue: {es-issue}112503[#112503]) + +[[bug-8.15.1]] +[float] +=== Bug fixes + +Aggregations:: +* Revert "Avoid bucket copies in Aggs" {es-pull}111758[#111758] (issue: {es-issue}111679[#111679]) + +Authorization:: +* Fix DLS over Runtime Fields {es-pull}112260[#112260] (issue: {es-issue}111637[#111637]) + +ES|QL:: +* Avoid losing error message in failure collector {es-pull}111983[#111983] (issue: {es-issue}111894[#111894]) +* Avoid wrapping rejection exception in exchange {es-pull}112178[#112178] (issue: {es-issue}112106[#112106]) +* ESQL: Fix for overzealous validation in case of invalid mapped fields {es-pull}111475[#111475] (issue: {es-issue}111452[#111452]) + +Geo:: +* Add maximum nested depth check to WKT parser {es-pull}111843[#111843] +* Always check `crsType` when folding spatial functions {es-pull}112090[#112090] (issue: {es-issue}112089[#112089]) +* Fix NPE when executing doc value queries over shape geometries with empty segments {es-pull}112139[#112139] + +Indices APIs:: +* Fix template alias parsing livelock {es-pull}112217[#112217] + +Infra/Core:: +* Fix windows memory locking {es-pull}111866[#111866] (issue: {es-issue}111847[#111847]) + +Ingest Node:: +* Fixing incorrect bulk request took time {es-pull}111863[#111863] (issue: {es-issue}111854[#111854]) +* Improve performance of grok pattern cycle detection {es-pull}111947[#111947] + +Logs:: +* Merge multiple ignored source entires for the same field {es-pull}111994[#111994] (issue: {es-issue}111694[#111694]) + +Machine Learning:: +* [Inference API] Move Delete inference checks to threadpool worker {es-pull}111646[#111646] + +Mapping:: +* Check for valid `parentDoc` before retrieving its previous {es-pull}112005[#112005] (issue: {es-issue}111990[#111990]) +* Fix calculation of parent offset for ignored source in some cases {es-pull}112046[#112046] +* Fix synthetic source for empty nested objects {es-pull}111943[#111943] (issue: {es-issue}111811[#111811]) +* No error when `store_array_source` is used without synthetic source {es-pull}111966[#111966] +* Prevent synthetic field loaders accessing stored fields from using stale data {es-pull}112173[#112173] (issue: {es-issue}112156[#112156]) + +Ranking:: +* Properly handle filters on `TextSimilarityRank` retriever {es-pull}111673[#111673] + +Relevance:: +* Semantic reranking should fail whenever inference ID does not exist {es-pull}112038[#112038] (issue: {es-issue}111934[#111934]) +* [Bugfix] Add `accessDeclaredMembers` permission to allow search application templates to parse floats {es-pull}111285[#111285] + +Search:: +* Explain Function Score Query {es-pull}111807[#111807] + +Security:: +* Fix "unexpected field [remote_cluster]" for CCS (RCS 1.0) when using API key that references `remote_cluster` {es-pull}112226[#112226] +* Fix connection timeout for `OpenIdConnectAuthenticator` get Userinfo {es-pull}112230[#112230] + +Vector Search:: +* Fix `NullPointerException` when doing knn search on empty index without dims {es-pull}111756[#111756] (issue: {es-issue}111733[#111733]) +* Speed up dense/sparse vector stats {es-pull}111729[#111729] (issue: {es-issue}111715[#111715]) + + diff --git a/docs/reference/release-notes/highlights.asciidoc b/docs/reference/release-notes/highlights.asciidoc index 007dd740f34cf..bf5260928797c 100644 --- a/docs/reference/release-notes/highlights.asciidoc +++ b/docs/reference/release-notes/highlights.asciidoc @@ -32,42 +32,6 @@ endif::[] // tag::notable-highlights[] -[discrete] -[[stored_fields_are_compressed_with_zstandard_instead_of_lz4_deflate]] -=== Stored fields are now compressed with ZStandard instead of LZ4/DEFLATE -Stored fields are now compressed by splitting documents into blocks, which -are then compressed independently with ZStandard. `index.codec: default` -(default) uses blocks of at most 14kB or 128 documents compressed with level -0, while `index.codec: best_compression` uses blocks of at most 240kB or -2048 documents compressed at level 3. On most datasets that we tested -against, this yielded storage improvements in the order of 10%, slightly -faster indexing and similar retrieval latencies. - -{es-pull}103374[#103374] - -[discrete] -[[stricter_failure_handling_in_multi_repo_get_snapshots_request_handling]] -=== Stricter failure handling in multi-repo get-snapshots request handling -If a multi-repo get-snapshots request encounters a failure in one of the -targeted repositories then earlier versions of Elasticsearch would proceed -as if the faulty repository did not exist, except for a per-repository -failure report in a separate section of the response body. This makes it -impossible to paginate the results properly in the presence of failures. In -versions 8.15.0 and later this API's failure handling behaviour has been -made stricter, reporting an overall failure if any targeted repository's -contents cannot be listed. - -{es-pull}107191[#107191] - -[discrete] -[[add_new_int4_quantization_to_dense_vector]] -=== Add new int4 quantization to dense_vector -New int4 (half-byte) scalar quantization support via two knew index types: `int4_hnsw` and `int4_flat`. -This gives an 8x reduction from `float32` with some accuracy loss. In addition to less memory required, this -improves query and merge speed significantly when compared to raw vectors. - -{es-pull}109317[#109317] - [discrete] [[esql_inlinestats]] === ESQL: INLINESTATS @@ -93,50 +57,6 @@ Produces output like: {es-pull}109583[#109583] -[discrete] -[[mark_query_rules_as_ga]] -=== Mark Query Rules as GA -This PR marks query rules as Generally Available. All APIs are no longer -in tech preview. - -{es-pull}110004[#110004] - -[discrete] -[[adds_new_bit_element_type_for_dense_vectors]] -=== Adds new `bit` `element_type` for `dense_vectors` -This adds `bit` vector support by adding `element_type: bit` for -vectors. This new element type works for indexed and non-indexed -vectors. Additionally, it works with `hnsw` and `flat` index types. No -quantization based codec works with this element type, this is -consistent with `byte` vectors. - -`bit` vectors accept up to `32768` dimensions in size and expect vectors -that are being indexed to be encoded either as a hexidecimal string or a -`byte[]` array where each element of the `byte` array represents `8` -bits of the vector. - -`bit` vectors support script usage and regular query usage. When -indexed, all comparisons done are `xor` and `popcount` summations (aka, -hamming distance), and the scores are transformed and normalized given -the vector dimensions. - -For scripts, `l1norm` is the same as `hamming` distance and `l2norm` is -`sqrt(l1norm)`. `dotProduct` and `cosineSimilarity` are not supported. - -Note, the dimensions expected by this element_type are always to be -divisible by `8`, and the `byte[]` vectors provided for index must be -have size `dim/8` size, where each byte element represents `8` bits of -the vectors. - -{es-pull}110059[#110059] - -[discrete] -[[redact_processor_generally_available]] -=== The Redact processor is Generally Available -The Redact processor uses the Grok rules engine to obscure text in the input document matching the given Grok patterns. The Redact processor was initially released as Technical Preview in `8.7.0`, and is now released as Generally Available. - -{es-pull}110395[#110395] - [discrete] [[always_allow_rebalancing_by_default]] === Always allow rebalancing by default @@ -149,76 +69,19 @@ version 8.16 `allow_rebalance` setting defaults to `always` unless the legacy al {es-pull}111015[#111015] -// end::notable-highlights[] - - -[discrete] -[[new_custom_parser_for_iso_8601_datetimes]] -=== New custom parser for ISO-8601 datetimes -This introduces a new custom parser for ISO-8601 datetimes, for the `iso8601`, `strict_date_optional_time`, and -`strict_date_optional_time_nanos` built-in date formats. This provides a performance improvement over the -default Java date-time parsing. Whilst it maintains much of the same behaviour, -the new parser does not accept nonsensical date-time strings that have multiple fractional seconds fields -or multiple timezone specifiers. If the new parser fails to parse a string, it will then use the previous parser -to parse it. If a large proportion of the input data consists of these invalid strings, this may cause -a small performance degradation. If you wish to force the use of the old parsers regardless, -set the JVM property `es.datetime.java_time_parsers=true` on all ES nodes. - -{es-pull}106486[#106486] - [discrete] -[[new_custom_parser_for_more_iso_8601_date_formats]] -=== New custom parser for more ISO-8601 date formats -Following on from #106486, this extends the custom ISO-8601 datetime parser to cover the `strict_year`, -`strict_year_month`, `strict_date_time`, `strict_date_time_no_millis`, `strict_date_hour_minute_second`, -`strict_date_hour_minute_second_millis`, and `strict_date_hour_minute_second_fraction` date formats. -As before, the parser will use the existing java.time parser if there are parsing issues, and the -`es.datetime.java_time_parsers=true` JVM property will force the use of the old parsers regardless. +[[add_global_retention_in_data_stream_lifecycle]] +=== Add global retention in data stream lifecycle +Data stream lifecycle now supports configuring retention on a cluster level, namely global retention. Global retention +allows us to configure two different retentions: -{es-pull}108606[#108606] +- `data_streams.lifecycle.retention.default` is applied to all data streams managed by the data stream lifecycle that do not have retention +defined on the data stream level. +- `data_streams.lifecycle.retention.max` is applied to all data streams managed by the data stream lifecycle and it allows any data stream +data to be deleted after the `max_retention` has passed. -[discrete] -[[preview_support_for_connection_type_domain_isp_databases_in_geoip_processor]] -=== Preview: Support for the 'Connection Type, 'Domain', and 'ISP' databases in the geoip processor -As a Technical Preview, the {ref}/geoip-processor.html[`geoip`] processor can now use the commercial -https://dev.maxmind.com/geoip/docs/databases/connection-type[GeoIP2 'Connection Type'], -https://dev.maxmind.com/geoip/docs/databases/domain[GeoIP2 'Domain'], -and -https://dev.maxmind.com/geoip/docs/databases/isp[GeoIP2 'ISP'] -databases from MaxMind. - -{es-pull}108683[#108683] - -[discrete] -[[update_elasticsearch_to_lucene_9_11]] -=== Update Elasticsearch to Lucene 9.11 -Elasticsearch is now updated using the latest Lucene version 9.11. -Here are the full release notes: -But, here are some particular highlights: -- Usage of MADVISE for better memory management: https://github.com/apache/lucene/pull/13196 -- Use RWLock to access LRUQueryCache to reduce contention: https://github.com/apache/lucene/pull/13306 -- Speedup multi-segment HNSW graph search for nested kNN queries: https://github.com/apache/lucene/pull/13121 -- Add a MemorySegment Vector scorer - for scoring without copying on-heap vectors: https://github.com/apache/lucene/pull/13339 - -{es-pull}109219[#109219] +{es-pull}111972[#111972] -[discrete] -[[synthetic_source_improvements]] -=== Synthetic `_source` improvements -There are multiple improvements to synthetic `_source` functionality: - -* Synthetic `_source` is now supported for all field types including `nested` and `object`. `object` fields are supported with `enabled` set to `false`. - -* Synthetic `_source` can be enabled together with `ignore_malformed` and `ignore_above` parameters for all field types that support them. - -{es-pull}109501[#109501] - -[discrete] -[[index_sorting_on_indexes_with_nested_fields]] -=== Index sorting on indexes with nested fields -Index sorting is now supported for indexes with mappings containing nested objects. -The index sort spec (as specified by `index.sort.field`) can't contain any nested -fields, still. +// end::notable-highlights[] -{es-pull}110251[#110251]