Commit graph

18395 commits

Author SHA1 Message Date
Kathleen DeRusso
f2cf76f027
Update semantic text docs to suggest customization using index_options (#130028)
* Update semantic text docs to suggest using index options for customization

* Correct type of  index_options

* Move example

* PR feedback

* Copy warning fix
2025-06-26 10:10:45 -04:00
Valeriy Khakhutskyy
4c7d922eeb
[ML] Fix timeout bug in DBQ deletion of unused and orphan ML data (#130083)
There was a bug in the code for deleting unused and orphan ML data. When deletion using DBQ occurred, the bug caused the request to time out. This PR resolves the issue.
2025-06-26 13:24:59 +02:00
Gal Lalouche
6970bd24a0
ESQL: Aggressive release of shard contexts (#129454)
Keep better track of shard contexts using RefCounted, so they can be released more aggressively during operator processing. For example, during TopN, we can potentially release some contexts if they don't pass the limit filter.

This is done in preparation of TopN fetch optimization, which will delay the fetching of additional columns to the data node coordinator, instead of doing it in each individual worker, thereby reducing IO. Since the node coordinator would need to maintain the shard contexts for a potentially longer duration, it is important we try to release what we can eariler.

An even more advanced optimization is to delay fetching to the main cluster coordinator, but that would be more involved, since we need to first figure out how to transport the shard contexts between nodes.

Summary of main changes:

DocVector now maintains a RefCounted instance per shard.
Things which can build or release DocVectors (e.g., LuceneSourceOperator, TopNOperator), can also hold RefCounted instances, so they can pass them to DocVector and also ensure contexts aren't released if they can still be potentially used later.
Driver's main loop iteration (runSingleLoopIteration), now closes its operators even between different operator processing. This is extra aggressive, and was mostly done to improve testability.
Added a couple of tests to TopNOperator and a new integration test EsqlTopNShardManagementIT, which uses the pausable plugin framework to check that TopNOperator releases things as early as possible..
2025-06-26 09:49:40 +10:00
Nhat Nguyen
2bc62848e8
Avoid dropping aggregate groupings in local plans (#129370)
The local plan optimizer should not change the layout, as it has already 
been agreed upon. However, CombineProjections can violate this when some
grouping elements refer to the same attribute. This occurs when
ReplaceFieldWithConstantOrNull replaces missing fields with the same
reference for a given data type.

Closes #128054
Closes #129811
2025-06-25 11:48:15 -07:00
Stanislav Malyshev
d3e00bec73
ES|QL CCS GA release notes highlight (#130032)
* ESQL CCS GA
2025-06-25 19:29:27 +01:00
Pawan Kartik
c94c021d0e
ES|QL: Check if cluster aliases and index patterns are valid before executing query (#122497)
ES|QL index patterns validation: Ensure that the patterns in the query are syntactically and semantically valid

---------

Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co>
Co-authored-by: Andrei Stefan <astefan@users.noreply.github.com>
Co-authored-by: Alexander Spies <alexander.spies@elastic.co>
2025-06-25 16:47:42 +01:00
Stef Nestor
af735accda
(Doc+) Link Slow Logs to Read+Write models (#129810)
* (Doc+) Link Slow Logs to Read+Write models

👋 howdy team! Baby update to cross-link the reading+write models from the Slow Logs page. 🙏

* feedback

Co-authored-by: shainaraskas <58563081+shainaraskas@users.noreply.github.com>

---------

Co-authored-by: shainaraskas <58563081+shainaraskas@users.noreply.github.com>
2025-06-25 09:40:44 -06:00
elasticsearchmachine
e977fccc4f
Finalize release notes for v9.0.3 release (#129938)
* Finalize docs for v9.0.3 release

* Fix breaking changes page

* Fix deprications page

* Fix release notes index page

---------

Co-authored-by: Charlotte Hoblik <sarolta@saroltah.hu>
Co-authored-by: Charlotte Hoblik <116336412+charlotte-hoblik@users.noreply.github.com>
2025-06-25 14:02:49 +02:00
elasticsearchmachine
87e6c7462f
Finalize docs for v9.0.2 release (#128837)
Co-authored-by: Charlotte Hoblik <116336412+charlotte-hoblik@users.noreply.github.com>
2025-06-25 12:27:27 +01:00
Lorenzo Dematté
b52e5a71eb
[Entitlements] Small fix on relative_path docs (#129984) 2025-06-25 11:53:54 +01:00
Liam Thompson
4df0e9930c
[DOCS] Update ESQL metadata fields page (#129939)
* [DOCS] Update ESQL metadata fields page

**esql-metadata-fields.md:**
- restructured from bullet list to table format for metadata fields
- added `_index_mode` and `_source` fields to available metadata
- improved field descriptions (more detailed)
- added "usage and limitations" section
- reorganized examples into subsections with headers
- added `_score` sorting example
- added tip box linking to search documentation

* 🚙Drive by updates to search functions ref page

moved tutorial link into tip box at top
added cross-reference to search overview documentation
minor text flow improvements and punctuation fixes

* Fix id typo

* Apply suggestions from review

Co-authored-by: Bogdan Pintea <sig11@mailbox.org>
2025-06-25 12:00:28 +02:00
Tim Vernum
8b62a55f2f
Watch SSL files instead of directories (#129738)
With the introduction of entitlements (#120243) and exclusive file
access (#123087) it is no longer safe to watch a whole directory.

In a lot of deployments, the parent directory for SSL config files
will be the main config directory, which also contains exclusive files
such as SAML realm metadata or File realm users. Watching that
directory will cause entitlement warnings because it is not
permissible for core/ssl-config to read files that are exclusively
owned by the security module (or other modules)
2025-06-25 18:24:57 +10:00
Alexander Spies
7b5e92fcb2
ESQL: Declare LOOKUP JOIN as GA in docs (#129947)
* Declare LU JOIN GA in 9.1
* Align applies_to tags for sample, change_point

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-06-25 09:30:37 +02:00
Mike Pellegrini
651bc39565
Simplified Linear & RRF Retrievers - Return error on empty fields param (#129962) 2025-06-24 19:25:24 -04:00
David Kyle
3a1551e0ef
[ML] Move to the Cohere V2 API for new inference endpoints (#129884) 2025-06-25 07:51:05 +10:00
HYUNSANG HAN (한현상, Travis)
d16271b78d
Add RemoveBlock API to allow DELETE /{index}/_block/{block} (#129128)
Introduces a new `RemoveBlock` API that complements the existing `AddBlock` API by allowing users to remove index blocks using `DELETE /{index}/_block/{block}`.

Resolves #128966

---------

Co-authored-by: Niels Bauman <nielsbauman@gmail.com>
2025-06-25 06:16:14 +10:00
elasticsearchmachine
cff9da2eae Prune changelogs after 8.17.8 release 2025-06-24 18:00:57 +00:00
David Turner
ba103f1c24
Reverse disordered-version warning message (#129904)
The comment in `TransportHandshaker` indicates (correctly) that we emit
a warning when talking to a chronologically-newer-yet-numerically-older
version, but the wording of the warning message is inverted and says
that the remote is chronologically-older-yet-numerically-newer. This
commit straightens out the message to match the situation it is
describing.

Relates #123397
2025-06-24 18:30:11 +01:00
Mark J. Hoy
7249ac4d42
Mark Token Pruning for Sparse Vector as GA (#128854)
* remove [preview] labels sparse vec / token pruning

* Update docs/changelog/128854.yaml

* update changelog

* set changelog to feature/ml

* set proper area

* add applies_to labels

* add clarification for token pruning behaviour
2025-06-24 11:36:02 -04:00
Martijn van Groningen
ae3c3601fd
Remove docs warning that synthetic source is in es|ql is experimental. (#129930) 2025-06-24 16:59:55 +02:00
elasticsearchmachine
9cc034ba44
Add release notes for v9.0.3 release (#129803)
* Update docs for v9.0.3 release

* Add merge scheduler issue to known issues pages

* Add patch release information

---------

Co-authored-by: Charlotte Hoblik <116336412+charlotte-hoblik@users.noreply.github.com>
Co-authored-by: Charlotte Hoblik <sarolta@saroltah.hu>
2025-06-24 11:34:32 +01:00
Panagiotis Bailis
b855266bd1
Make bbq_hnsw the default index option for dense-vector fields with more than 384 dimensions (#129825) 2025-06-24 12:20:16 +03:00
Charlotte Hoblik
1a0ab74323
[DOCS]: Add Vector tile search API examples (#129520)
* Add vector tile examples

* Add new page to TOC

* Add internal translation example

* Update docs/reference/elasticsearch/rest-apis/vector-tile-search.md

Co-authored-by: István Zoltán Szabó <istvan.szabo@elastic.co>

* Update docs/reference/elasticsearch/rest-apis/vector-tile-search.md

Co-authored-by: István Zoltán Szabó <istvan.szabo@elastic.co>

---------

Co-authored-by: István Zoltán Szabó <istvan.szabo@elastic.co>
2025-06-24 09:30:16 +01:00
Charlotte Hoblik
fb30e59a38
Add Query API key information examples (#129719) 2025-06-24 10:13:04 +02:00
Liam Thompson
5aeadf277e
[DOCS] Remove planning verbiage (#129900) 2025-06-24 09:53:42 +02:00
Nik Everett
59a10bdd7b
ESQL: Add counters to signature for IS NULL (#129670)
This adds `counter_long` and `counter_double` to the signatures of
supported fields for `IS NULL` and `IS NOT NULL`. We hadn't been
generating those signatures since the docs v3 migration, so this had to
plug those in. In addition, it changes the wording on a few things and
adds a note that if a field is only in some documents then the ones
missing the field will have `NULL` - which is important information for
`IS NULL` and `IS NOT NULL`.
2025-06-24 01:18:15 +01:00
Mark J. Hoy
a671505c8a
Update sparse_vector field mapping to include default setting for token pruning (#129089)
* Initial checkin of refactored index_options code

* [CI] Auto commit changes from spotless

* initial unit testing

* complete unit tests; add yaml tests

* [CI] Auto commit changes from spotless

* register test feature for sparse vector

* Update docs/changelog/129089.yaml

* update changelog

* add docs

* explicit set default index_options if null

* [CI] Auto commit changes from spotless

* update yaml tests; update docs

* fix yaml tests

* readd auth for teardown

* only serialize index options if not default

* [CI] Auto commit changes from spotless

* serialization refactor; pass index version around

* [CI] Auto commit changes from spotless

* fix transport versions merge

* fix up docs

* [CI] Auto commit changes from spotless

* fix docs; add include_defaults unit and yaml test

* [CI] Auto commit changes from spotless

* override getIndexReaderManager for SemanticQueryBuilderTests

* [CI] Auto commit changes from spotless

* cleanup mapper/builder/tests; index vers. in type

still need to refactor / clean YAML tests

* [CI] Auto commit changes from spotless

* cleanups to mapper tests for clarity

* [CI] Auto commit changes from spotless

* move feature into mappers; fix yaml tests

* cleanups; add comments; remove redundant test

* [CI] Auto commit changes from spotless

* escape more periods in the YAML tests

* cleanup mapper and type tests

* [CI] Auto commit changes from spotless

* rename mapping for previous index test

* set explicit number of shards for yaml test

---------

Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co>
Co-authored-by: Kathleen DeRusso <kathleen.derusso@elastic.co>
2025-06-24 08:21:32 +10:00
Pat Whelan
aeb37189af
[ML] SageMaker Elastic Payload (#129413)
Send the Elastic API Payload to a SageMaker endpoint, and parse the
response as if it were an Elastic API response.

- SageMaker now supports all task types in the Elastic API format.
- Streaming is supported using the SageMaker client/server rpc,
  rather than SSE. Payloads must be in a complete and valid JSON
  structure.
- Task Settings can be used for additional passthrough settings, but
  they will not be saved alongside the model. Elastic cannot make
  guarantees on the structure or contents of this payload, so Elastic
  will treat it like the other input payloads and only allow them during
  inference.
2025-06-24 06:43:24 +10:00
Liam Thompson
8c06acccf8
[DOCS][ESQL] GA search functions for 9.1 (#129786)
* [DOCS][ESQL] Flip preview booleans, to GA search functions

* render docs, tweak some applies_to metadata in docs gen code

- **rendered docs (md):**
  - kql: removed serverless preview, added ga 9.1.0
  - match: removed serverless preview, added ga 9.1.0
  - match_phrase: changed from preview 9.1.0 to unavailable 9.0 + ga 9.1.0
  - qstr: removed serverless preview, added ga 9.1.0
  - search functions list: removed bullet point before term function

- **docs generation code (java):**
  - match_phrase: updated function info annotations to unavailable 9.0 + ga 9.1.0
  - query_string: uncommented ga 9.1.0 annotation
2025-06-23 20:51:54 +01:00
Julian Kiryakov
caae426cf7
Pushdown for LIKE (LIST) (#129557)
Improved performance of LIKE (LIST)  by pushing an Automaton to do the evaluation down to Lucine.
2025-06-23 14:35:09 -04:00
Craig Taverner
e6347b8ab0
[DOCS] Update ES|QL generated docs to consistently use the applies_to metadata (#128576)
- Add PREVIEW annotations to all preview functions
- Update docs generation logic to use annotations instead of preview boolean
* Changed stack: ga 9.1 to stack: coming in multiple places
  - Match.java: Updated the options parameter description
  - MultiMatch.java: Updated the options parameter description
  - ToLower.java: Reformatted parameter description and updated version annotation
  - ToUpper.java: Removed the appliesTo annotation entirely and reformatted parameter description

- updated applies_to annotations to specify both preview 9.0.0 and ga 9.1.0 lifecycle stages
- added version-specific documentation examples with applies_to markers for ga 9.1.0 features
- enhanced to_lower and to_upper functions to indicate support for multi-valued expressions in ga 9.1.0
- added version guards around function parameters and descriptions using applies_to syntax
- updated function parameter descriptions to indicate ga 9.1.0 availability for named parameters
- use detailedDescription + and fix match_phrase applies_to syntax
- strip inline applies_to from kibana docs
- update roundto, matchphrase lifecycles
-  fix match named params info
- various spatial functions are preview
- unsigned long is preview
- update qstr
- Update TO_LOWER/TO_UPPER parameter descriptions for clarity
- hide spatial functions per https://github.com/elastic/elasticsearch/pull/129839
- added `stack: ga 9.1.0` blocks to match_phrase.md and qstr.md examples
- simplified term.md version from `preview 9.0.0` to just `preview`
- added `applies_to = "stack: ga 9.1.0"` to matchphrase and querystring java annotations
- removed version `9.0.0` from term function annotation
- deleted unused `makeCallout()` and `appendLifeCycleAndVersion()` methods


Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co>
Co-authored-by: Liam Thompson <leemthompo@gmail.com>
Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
Co-authored-by: Nik Everett <nik9000@gmail.com>
2025-06-23 20:07:41 +02:00
Charlotte Hoblik
321a39738a
[DOCS]: Add connectors release notes for 9.0.3 (#129861)
* Add connectors release notes for 9.0.3

* Add release note
2025-06-23 17:16:59 +01:00
David Kyle
816caf70fc
[ML] Check for model deployment in inference endpoints before stopping (#129325) 2025-06-23 16:39:51 +01:00
Mike Pellegrini
636da86ccb
Simplified RRF Retriever (#129659) 2025-06-23 11:35:28 -04:00
Alexander Spies
efb1397fe9
ESQL: Hide spatial grid functions behind SNAPSHOT (#129839)
#125143 added 9 spatial grid functions and released them into Serverless. We think this is not the best long-term approach and the functions in #129581 are likely better.

As a first step, rmove the spatial grid functions added in #125143 from release builds so they don't get released into 8.19/9.1.

---------

Co-authored-by: Craig Taverner <craig@amanzi.com>
2025-06-23 17:16:30 +02:00
István Zoltán Szabó
b1741e8a96
DOCS] Adds update cross cluster API key API examples (#129843)
* DOCS] Adds update cross cluster API k
ey API examples.

* Fixes markup.

* Update docs/reference/elasticsearch/rest-apis/update-cc-api-key-examples.md

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>

* [DOCS] Subheadings.

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-06-23 14:43:31 +02:00
Alexander Spies
809dab1c3a
ESQL: Pushdown Lookup Join past Project (#129503)
Add a new logical plan optimization:

When there is a Project (KEEP/DROP/RENAME/renaming EVALs) in a LOOKUP JOIN's left child (the "main" side), perform the Project after the LOOKUP JOIN. This prevents premature field extractions when the lookup join happens on data nodes.
2025-06-23 12:05:45 +02:00
Chris Hegarty
1255a64832
Upgrade to Lucene 10.2.2 (#129546)
This commit upgrades to Upgrade to Lucene 10.2.2.

With the release of 10.2.2, we no longer need to workaround the Lucene bug mentioned in 128671.
2025-06-22 13:37:22 +01:00
Nik Everett
0b35acf861
ESQL: Fix misspelling in generated docs (#129789)
Pulled from #128576 so it's easier to review.
2025-06-20 20:42:37 +01:00
Parker Timmins
245dc0775a
Make flattened synthetic source concatenate object keys on scalar/object mismatch (#129600)
There is an issue where for Flattened fields with synthetic source, if there is a key with a scalar value, and a duplicate key with an object value, one of the values will be left out of the produced synthetic source. This fixes the issue by replacing the object with paths to each of its keys. These paths consist of the concatenation of all keys going down to a given scalar, joined by a period. For example, they are of the form foo.bar.baz. This applies recursively, so that every value within the object, no matter how nested, will be accessible through a full specified path.
2025-06-20 14:20:49 -05:00
Mikhail Berezovskiy
eeca493860
Move HTTP content aggregation from Netty into RestController (#129302) 2025-06-19 09:05:17 -07:00
Ioana Tagirta
04231e9798
ES|QL: Make fork available in release builds (#129606) 2025-06-19 13:14:06 +02:00
Jan Kuipers
5449d95dcd
ES|QL categorize tech preview -> GA (#129398) 2025-06-19 12:06:28 +02:00
Nik Everett
0f986769e0
ESQL: Fix PushQueryIT#testEqualityOrTooBig (#129657)
Fixes a test about query pushing for `==` to lucene.

Closes #129545
2025-06-19 06:40:42 +10:00
Julian Kiryakov
42047ac0d3
Fix PushQueriesIT.testLike() fails (#129647)
Fix an issue where PushQueriesIT.testLike() fails if we randomly generate the empty string as a test value
2025-06-18 15:36:08 -04:00
Dan Rubinstein
4275bc786b
Add recursive chunker (#126866)
* Add recursive chunker

* Update docs/changelog/126866.yaml

* Clean up separator sets and add asMap function for RecrusiveChunkingSettings

* Add javadoc for chunker, add tests, reduce word counting operations

* Remove split merging and add long document unit test

* [CI] Auto commit changes from spotless

* Add markdown chunking tests and reduce substring calls

* Clean up matcher logic

* Add testing for not splitting after valid chunk is found

---------

Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2025-06-18 13:29:15 -04:00
Albert Zaharovits
b22bf838c6
Deprecate indices.merge.scheduler.use_thread_pool setting (#129464)
This deprecates the `indices.merge.scheduler.use_thread_pool` setting
that was introduced in
https://github.com/elastic/elasticsearch/pull/120869 because this
setting should not normally be used, unless instructed so by engineering
to get around temporary issues with the new threadpool-based merge
scheduler.
2025-06-18 22:48:17 +10:00
Kostas Krikellas
b25d7b9471
Check prefixes when constructing synthetic source for flattened fields (#129580)
* Check prefixes when constructing synthetic source for flattened fields

* Update docs/changelog/129580.yaml
2025-06-18 11:13:53 +03:00
Tim Brooks
9ac6576aac
Add thread pool for write coordination (#129450)
This change adds a thread pool for write coordination to ensure that
bulk coordination does not get stuck on an overloaded primary node.
2025-06-17 23:25:05 -06:00
Benjamin Trent
80667d0c8a
Fix NPE in flat_bbq scorer when all vectors are missing (#129548)
It is possible to get all the way down to the knn format reader and
there be no vectors in the index. 

This execution path is possible if utilizing nested queries (which
bypasses the higher level checks in
`KnnFloatVectorQuery#approximateSearch`).

bbq_flat should check for the existence of vectors before attempting to
create the scorer.
2025-06-18 07:39:19 +10:00