Release notes
9.4.5-40.0
Bug Fixes
-
Fixed a bug in AQP with nested joins when a child join was pruned by the planner.
-
Fixed a bug in multi-conditional index join swapping when the parent data was empty.
-
Fixed a regression in Searchguard FLX when calculating the index fingerprint.
-
Fixed failures in join queries with
matchqueries onsemantic_textfields. -
Fixed a stack overflow in the graph API when a path pattern led to an unreachable entity.
-
Fixed a stack overflow when processing graph queries with two patterns.
-
Fixed inner-join strategy when the root var is not the first node pattern.
-
Fixed an issue on join strategy selection for graph requests.
-
Fixed an
ArrayIndexOutOfBoundsExceptioninINDEX_JOINstrategy when joining on numeric fields. -
Fixed an issue where the
msearchrequest ignored thepreferenceparameter when at least one sub-request contained a join. -
Fixed an issue where the
preferenceparameter contained a non-existent shard id, causing the request to fail instead of returning an empty response. -
Fixed rolling-upgrade serialization in broadcast requests.
-
Fixed an issue with query name and boost handling in KNN queries.
-
Fixed a race condition in search locks for graph requests.
-
Fixed a race condition in the data store.
-
Fixed root selection in graph requests when the Jordan Center strategy could not find a center.
-
Fixed label-combination exploration while backtracking in graph pattern matching.
-
Fixed a race condition between task resource release and job allocator cleanup.
-
Fixed scoring inconsistencies in
dis_maxqueries whenmin_scorewas used withtie_breaker. -
Fixed a bug in unary-expression hashing that could cause incorrect cached plan reuse for equivalent-looking queries.
Features
-
Added support for
LIMITclause in graph API queries. -
Added ANY direction in edge patterns in graph API queries.
-
Added support for disjunction of labels in graph API queries.
-
Added support for disjunctions in path patterns.
-
Added support for early termination in AQP so tasks can complete as soon as downstream evaluation proves there are no results.
-
Added support for task cancellation in graph requests.
-
Added node labels to the default vertex output.
-
Added support for element property specifications in graph requests.
-
Added a new graph execution pipeline that improved scalability and provided a stronger foundation for future graph features.
Enhancements
-
Upgraded to Elasticsearch 9.4.5
-
Improved the performance of the graph API during label expansion.
-
Improved performance on multi-condition index join when using EQ operator on keyword fields.
-
Improved graph result-fetch performance by removing the use of named queries.
-
Improved memory usage in the graph API when rendering final results.
-
Improved the memory settings documentation section.
-
Improved data lifecycle by borrowing vector container per tasks.
-
Improved the search-lock lifecycle for graph requests.
-
Added cancel-aware graph expansion handling so resources are released as soon as they are no longer required.
-
Added graph-pattern pruning to skip zero-result branches earlier, reducing unnecessary processing.
-
Added a fail-fast approach when the data model was not available.
-
Added job throttling for graph API requests to limit resource overuse.
-
Improved the cost optimizer for KNN requests by using KNN queries during cardinality estimation.
-
Improved creation of table rows with a streaming Cartesian Product computation.
-
Updated Apache Arrow to version 18.3.0.
-
Updated Apache Calcite to version 1.42.
-
Improved code stability by removing reflection on Elasticsearch internal API.
-
Added a documentation example of runtime fields accessing nested fields.
-
Clarified the license requirements for the graph API in the documentation.