Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/reference/release-notes.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
This section summarizes the changes in each release.

* <<release-notes-8.16.0>>
* <<release-notes-8.15.3>>
* <<release-notes-8.15.2>>
* <<release-notes-8.15.1>>
* <<release-notes-8.15.0>>
Expand Down Expand Up @@ -74,6 +75,7 @@ This section summarizes the changes in each release.
--

include::release-notes/8.16.0.asciidoc[]
include::release-notes/8.15.3.asciidoc[]
include::release-notes/8.15.2.asciidoc[]
include::release-notes/8.15.1.asciidoc[]
include::release-notes/8.15.0.asciidoc[]
Expand Down
47 changes: 47 additions & 0 deletions docs/reference/release-notes/8.15.3.asciidoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
[[release-notes-8.15.3]]
== {es} version 8.15.3

Also see <<breaking-changes-8.15,Breaking changes in 8.15>>.

[[bug-8.15.3]]
[float]
=== Bug fixes

Aggregations::
* Don't validate internal stats if they are empty {es-pull}113846[#113846] (issue: {es-issue}113811[#113811])
* Fix `needsScore` computation in `GlobalOrdCardinalityAggregator` {es-pull}113129[#113129] (issue: {es-issue}112975[#112975])

Authentication::
* Enables cluster state role mapper, to include ECK operator-defined role mappings in role resolution {es-pull}114337[#114337]

ES|QL::
* ES|QL: Ensure minimum capacity for `PlanStreamInput` caches {es-pull}114116[#114116]
* ES|QL: Skip CASE function from `InferIsNotNull` rule checks {es-pull}113123[#113123] (issue: {es-issue}112704[#112704])
* [ESQL] Fix init value in max float aggregation {es-pull}113699[#113699]
* [ESQL] Support datetime data type in Least and Greatest functions {es-pull}113961[#113961]

Machine Learning::
* Fix check on E5 model platform compatibility {es-pull}113437[#113437] (issue: {es-issue}113577[#113577])
* Handle parsing ingest processors where definition is not a object {es-pull}113697[#113697] (issue: {es-issue}113615[#113615])
* [ML][backport] Warn for model load failures if they have a status code <500 {es-pull}113410[#113410]
* [M] Fix error message formatting {es-pull}113266[#113266]

Search::
* Fix analyzed wildcard query in simple_query_string when disjunctions is empty {es-pull}114264[#114264] (issue: {es-issue}114185[#114185])
* Fix collapse interaction with stored fields {es-pull}112761[#112761] (issue: {es-issue}112646[#112646])

[[enhancement-8.15.3]]
[float]
=== Enhancements

Machine Learning::
* Write downloaded model parts async {es-pull}111684[#111684]

[[upgrade-8.15.3]]
[float]
=== Upgrades

Snapshot/Restore::
* Upgrade protobufer to 3.25.5 {es-pull}113869[#113869]


66 changes: 66 additions & 0 deletions docs/reference/release-notes/highlights.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,31 @@ index codec best compression. (#112665)

{es-pull}112857[#112857]

[discrete]
[[esql_introduce_per_agg_filter]]
=== ESQL: Introduce per agg filter
Add support for aggregation scoped filters that work dynamically on the
data in each group.

[source,esql]
----
| STATS success = COUNT(*) WHERE 200 <= code AND code < 300,
redirect = COUNT(*) WHERE 300 <= code AND code < 400,
client_err = COUNT(*) WHERE 400 <= code AND code < 500,
server_err = COUNT(*) WHERE 500 <= code AND code < 600,
total_count = COUNT(*)
----

Implementation wise, the base AggregateFunction has been extended to
allow a filter to be passed on. This is required to incorporate the
filter as part of the aggregate equality/identity which would fail with
the filter as an external component.
As part of the process, the serialization for the existing aggregations
had to be fixed so AggregateFunction implementations so that it
delegates to their parent first.

{es-pull}113735[#113735]

// end::notable-highlights[]


Expand Down Expand Up @@ -131,3 +156,44 @@ field is first combined into a single geometry before performing the predicate c

{es-pull}112063[#112063]

[discrete]
[[enhance_sort_push_down_to_lucene_to_cover_references_to_fields_st_distance_function]]
=== Enhance SORT push-down to Lucene to cover references to fields and ST_DISTANCE function
The most used and likely most valuable geospatial search query in Elasticsearch is the sorted proximity search,
finding items within a certain distance of a point of interest and sorting the results by distance.
This has been possible in ES|QL since 8.15.0, but the sorting was done in-memory, not pushed down to Lucene.
Now the sorting is pushed down to Lucene, which results in a significant performance improvement.

Queries that perform both filtering and sorting on distance are supported. For example:

[source,esql]
----
FROM test
| EVAL distance = ST_DISTANCE(location, TO_GEOPOINT("POINT(37.7749, -122.4194)"))
| WHERE distance < 1000000
| SORT distance ASC, name DESC
| LIMIT 10
----

In addition, the support for sorting on EVAL expressions has been extended to cover references to fields:

[source,esql]
----
FROM test
| EVAL ref = field
| SORT ref ASC
| LIMIT 10
----

{es-pull}112938[#112938]

[discrete]
[[cross_cluster_search_telemetry]]
=== Cross-cluster search telemetry
The cross-cluster search telemetry is collected when cross-cluster searches
are performed, and is returned as "ccs" field in `_cluster/stats` output.
It also add a new parameter `include_remotes=true` to the `_cluster/stats` API
which will collect data from connected remote clusters.

{es-pull}113825[#113825]

Loading