Commit Graph

12664 Commits

Author SHA1 Message Date
Ioana Tagirta 15dd896a61
Remove null example for match_phrase (#129173) 2025-06-10 10:27:15 +02:00
Kathleen DeRusso b214fbfcdc
Take match_phrase out of snapshot and make tech preview (#128925)
* Take match_phrase out of snapshot and make tech preview

* Update docs/changelog/128925.yaml

* PR feedback

* Adding regenerated test data

* Update docs/changelog/128925.yaml

Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com>

* [CI] Auto commit changes from spotless

* Checkstyle

* Correct docs

* Hopefully fix docs build

* Found one more bad docs link - here's hoping this now fixes the doc build

* OMG bitten by - vs _

---------

Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com>
Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co>
Co-authored-by: Aurélien FOUCRET <aurelien.foucret@gmail.com>
2025-06-09 18:55:49 +02:00
Kathleen DeRusso 5d22ad6874
Add clarification to semantic_text documentation on default quantization and lexical search support (#128927)
* Add clarifications to semantic text documentation

* Regnerate match ESQL docs

* Fix whitespace

* PR feedback

* Update docs/reference/elasticsearch/mapping-reference/semantic-text.md

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

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-06-06 15:01:50 +02:00
Marci W a0bfe61a83
Remove stale synthetic source preview note (#128981) 2025-06-05 09:31:25 -04:00
Kathleen DeRusso eee423aaa0
[ES|QL] Add MATCH_PHRASE (#127661)
* Initial commit of match_phrase

* Add MatchPhraseQueryTests

* First pass at CSV specs

* Update docs/changelog/127661.yaml

* Refactor so MatchPhrase doesn't use all fulltext test cases, just text only

* Fix tests

* Add some CSV test cases

* Fix test

* Update changelog

* Update tests

* Comment out MATCH_PHRASE in search-functions Markdown

* Minor PR feedback

* PR feedback - refactor/consolidate code

* Add some more tests

* Fix some tests

* [CI] Auto commit changes from spotless

* Fix tests

* PR feedback - add tests, support boost and numeric data

* Revert "PR feedback - add tests, support boost and numeric data"

This reverts commit 4e7a699e3e.

* Apply testing/PR feedback outside numeric support only

* Regenerate docs

* Add negative test

* Update x-pack/plugin/esql/qa/testFixtures/src/main/resources/match-phrase-function.csv-spec

Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com>

* Update x-pack/plugin/esql/qa/testFixtures/src/main/resources/match-phrase-function.csv-spec

Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com>

* Update x-pack/plugin/esql/qa/testFixtures/src/main/resources/match-phrase-function.csv-spec

Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com>

* PR feedback

* Fix auto-commit error

* Regenerate docs

* Update x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/fulltext/MatchPhrase.java

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

* Remove non text field types

* Fake test data

* Remove tests that no longer should pass without ip/date/version support

* Put real data in score tests now that I was able to engineer a failure

* Realized the scoring test might be flakey because how it was written, updated

* PR feedback

* PR feedback

* [CI] Auto commit changes from spotless

* Add check to MatchPhrase tests

* Fix merge errors

* [CI] Auto commit changes from spotless

* Test generated docs

* Add additional verifier tests

---------

Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co>
Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com>
Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-06-04 12:32:24 -04:00
mbivert-ipsos aa0a829a08
[DOCS] Fix missing spaces (#128550) 2025-06-04 18:59:42 +03:00
Lisa Cawley 4b7a9bd563
[DOCS] Add missing index setting link (#128794) 2025-06-03 11:40:05 -07:00
eyalkoren d3d2d9b996
Adding `NormalizeForStreamProcessor` (#125699) 2025-06-03 13:11:12 -04:00
Charlotte Hoblik 38fb46d366
Add Connectors release notes for 9.0.2 (#128555) 2025-06-03 15:24:06 +02:00
Craig Taverner 11f0c5526a
ES|QL Support for ST_GEOHASH, ST_GEOTILE and ST_GEOHEX (#125143)
Added support for the three primary scalar grid functions:
* `ST_GEOHASH(geom, precision)`
* `ST_GEOTILE(geom, precision)`
* `ST_GEOHEX(geom, precision)`

As well as versions of these three that take an optional `geo_shape` boundary (must be a `BBOX` ie. `Rectangle`).

And also supporting conversion functions that convert the grid-id from long to string and back to long.

This work represents the core of the feature to support geo-grid aggregations in ES|QL.
2025-06-03 11:49:34 +02:00
Mridula 81fba27b6b
Add l2_norm normalization support to linear retriever (#128504)
* New l2 normalizer added

* L2 score normaliser is registered

* test case added to the yaml

* Documentation added

* Resolved checkstyle issues

* Update docs/changelog/128504.yaml

* Update docs/reference/elasticsearch/rest-apis/retrievers.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Score 0 test case added to check for corner cases

* Edited the markdown doc description

* Pruned the comment

* Renamed the variable

* Added comment to the class

* Unit tests added

* Spotless and checkstyle fixed

* Fixed build failure

* Fixed the forbidden test

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-02 14:59:03 +01:00
Ioana Tagirta abf5f00413
Document boost option for match_phrase (#128738) 2025-06-02 11:57:03 +02:00
George Wallace 4eca31756f
Update dissect-processor.md (#128708) 2025-06-02 08:49:45 +02:00
Nik Everett 1b151eda4b
ESQL: Compute engine support for tagged queries (#128521)
Begins adding support for running "tagged queries" to the compute
engine. Here, it's just the `LuceneSourceOperator` because that's
useful and contained.

Example time! Say you are running:
```
FROM foo
| STATS MAX(v) BY ROUND_TO(g, 0, 100, 1000, 100000)
```

It's *often* faster to run this as four queries:
* The docs that round to `0`
* The docs that round to `100`
* The docs that round to `1000`
* The docs that round to `100000`

This creates an ESQL operator that can run these queries, one after the
other and attach those tags.

Aggs uses this trick and it's *way* faster when it can push down count
queries, but it's still faster when it pushes doc loading things. This
implementation in `LuceneSourceOperator` is quite similar to the doc
loading version in _search.

I don't have performance measurements yet because I haven't plugged this
into the language. In _search we call this `filter-by-filter` and enable
it when each group averages to more than 5000 documents and when there
isn't an `_doc_count` field. It's faster in those cases not to push. I
expect we'll be pretty similar.
2025-05-29 12:41:58 -04:00
Lisa Cawley 3b54afd2b7
[DOCS] Edit dynamic and static setting links (#128537) 2025-05-29 08:00:11 -07:00
Liam Thompson 0a46527232
[DOCS] Document `join` field type not available on serverless currently (#128496) 2025-05-27 09:51:35 +02:00
Fabrizio Ferri-Benedetti 314dc1a20e
Replace chars (#128439) 2025-05-26 11:01:12 +02:00
Ioana Tagirta 55956d4029
Docs: Fix match_phrase docs for zero_terms_query (#128387) 2025-05-23 19:33:26 +02:00
Nik Everett 584c60e233
ESQL: Enable docs for ROUND_TO (#128378)
Plug the docs in for ROUND_TO.
2025-05-23 19:06:05 +02:00
Nik Everett dd180be55d
ESQL: Fix docs for ROUND_TO (#128382)
The examples included a filter we use for testing by mistake.
2025-05-24 01:28:29 +10:00
Nik Everett 45bfaab448
ESQL: ROUND_TO function (#128278)
Creates a `ROUND_TO` function that rounds it's input to one of the
provided values. Like so:
```
ROUND_TO(v, 0, 5000, 10000, 20000, 40000, 100000)

   v   | ROUND_TO
     0 | 0
   100 | 0
  6000 | 5000
 45001 | 40000
999999 | 100000
```

For some sequences of numbers you could do this with the `/` operator -
but for arbitrary sequences of numbers you needed `CASE` which is quite
slow. And hard to read!

Rewriting the example above would look like:
```
CASE (
  v <   5000,     0,
  v <  10000,  5000,
  v <  20000, 10000,
  v <  40000, 20000,
  v < 100000, 40000,
  100000
)
```

Even better, this is *fast*:
```
        (operation)  Mode  Cnt    Score   Error  Units
round_to_4_via_case  avgt    7  138.124 ± 0.738  ns/op
         round_to_4  avgt    7    0.805 ± 0.011  ns/op
         round_to_3  avgt    7    0.739 ± 0.011  ns/op
         round_to_2  avgt    7    0.651 ± 0.009  ns/op
         date_trunc  avgt    7    2.425 ± 0.018  ns/op
```

I've included a comparison to `DATE_TRUNC` above because we should be
able to rewrite `DATE_TRUNC` into `ROUND_TO` when we know the date range
of the index. This doesn't do it now, but it should be possible.
2025-05-23 10:14:30 -04:00
Jan Calanog cae06b8c54
Fix code-callout rendering (#128365) 2025-05-23 13:42:04 +02:00
Carles Salvador b977b04a2e
Rename Azure Active Directory to Microsoft Entra ID (#128351)
* Rename Azure Active Directory to Microsoft Entra ID 

Based on Microsoft change: https://learn.microsoft.com/en-us/entra/fundamentals/new-name

* Update docs/reference/search-connectors/es-connectors-sharepoint-online.md

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

* Update docs/reference/search-connectors/es-connectors-sharepoint-online.md

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

* Update docs/reference/search-connectors/es-connectors-sharepoint-online.md

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

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-05-23 11:40:01 +02:00
Nik Everett b8e2fce60a
ESQL: Document VALUES uniques (#128157)
Documents that the VALUES aggregate function returns unique documents
and points folks to the TOP aggregate function if they want to keep
dupes.

Closes #128091


---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-05-22 15:50:29 +02:00
Charlotte Hoblik 5f9c4017c4
Add application permission to outlook connector (#128235) 2025-05-22 10:50:44 +02:00
shmuelhanoch db644e20c8
Added esql scalb function. (#127696)
Co-authored-by: Shmuel Hanoch <shmuel.hanoch@elastic.co>
2025-05-22 10:47:44 +03:00
Colleen McGinnis ab5ff67bce
[docs] Add `products` to `docset.yml` (#128274)
* add products to docset.yml

* add page-level painless tags
2025-05-21 13:55:32 -05:00
Liam Thompson 960222e0dc
[DOCS] Make ESQL functions/operators/commands overview accordions open by default (#128197) 2025-05-21 12:08:04 +02:00
Fabrizio Ferri-Benedetti d10ef76ba3
[DOCS] Replace irregular whitespaces in docs (#128199)
* Replace irregular whitespaces

* More chars
2025-05-20 16:20:22 +02:00
Ian Wagner d4b387c015
Minor subject/verb agreement fix (#127955)
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2025-05-13 12:59:42 +01:00
Parker Timmins c04a9569fe
Do not respect synthetic_source_keep=arrays if type parses arrays (#127796)
Types that parse arrays directly should not need to store values in _ignored_source if synthetic_source_keep=arrays. Since they have custom handling of arrays, it provides no benefit to store in _ignored_source when there are multiple values of the type.
2025-05-09 14:49:15 -05:00
Craig Taverner 7d06f815f3
Initial kibana definition files for command, currently only providing License information (#127829)
Initial Kibana definition files for commands, currently only providing License information. We leave the license field out if it works with BASIC, so the only two files that actually have a license line are:

* CHANGE_POINT: PLATINUM
* RRF: ENTERPRISE
2025-05-08 09:39:34 +02:00
Jan Kuipers 9cf2a64067
ES|QL SAMPLE aggregation function (#127629)
* ES|QL SAMPLE aggregation function

* [CI] Auto commit changes from spotless

* ThreadLocalRandom -> SplittableRandom

* Update docs/changelog/127629.yaml

* fix yaml test

* Add SampleTests

* docs + example

* polish code

* mark generated imports

* comment with algorith description

* use Randomness.get()

* close properly

* type checks

* reuse hash

* regen some files

* [CI] Auto commit changes from spotless

---------

Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co>
2025-05-08 08:01:53 +02:00
Oleksandr Kolomiiets 5d6dffaa51
Fix more typos in new text docs (#127855)
docs-build / docs-preview (push) Failing after 0s Details
Validate Gradle Wrapper / Validation (push) Has been skipped Details
updatecli-compose / compose (push) Has been skipped Details
2025-05-08 06:20:08 +10:00
Charlotte Hoblik d0e3af7990
[DOCS]: Add connector release notes page for 9.x (#127803)
* Add connector release notes page

* Add 9.0.0 release notes

* Add 9.0.1 Release notes

* Update docs/reference/search-connectors/release-notes.md

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

* Align IDs to MINOR_VERSION variable

* Update docs/reference/search-connectors/release-notes.md

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

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-05-07 17:29:11 +02:00
Arianna Laudazzi afbd3319c1
[Reference] Revisit ES and index management landing page (#127571)
* Update landing page

* Fix links

* Update docs/reference/elasticsearch/index.md

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

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-05-07 15:56:57 +02:00
Richard Dennehy 736e2e6eb7
add documentation for JWT realm proxy settings (#127605) 2025-05-07 10:31:31 +01:00
Alexander Spies 9e3ae5b224
ESQL: Document LU JOIN/MV_EXPAND not respecting SORT (#127718) 2025-05-07 10:59:48 +02:00
Craig Taverner 543aeb8c19
Output function signature license requirements to Kibana definitions (#127717)
Output function signature license requirements to Kibana definition files, and also test that this matches the actual licensing behaviour of the functions.

ES|QL functions that enforce license checks do so with the `LicenseAware` interface. This does not expose what that functions license level is, but only whether the current active license will be sufficient for that function and its current signature (data types passed in as fields). Rather than add to this interface, we've made the license level information test-only information. This means if a function implements LicenseAware, it also needs to add a method to its test class to specify the license level for the signature being called. All functions will be tested for compliance, so failing to add this will result in test failure. Also if the test license level does not match the enforced license, that will also cause a failure.
2025-05-07 10:02:17 +02:00
Arianna Laudazzi 1df4a90943
[Reference] Revisit query language landing page (#127632)
* Update query languauge landing page

* Update index.md

* Update docs/reference/query-languages/index.md

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

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-05-07 08:44:49 +02:00
Arianna Laudazzi e9fe219067
[Reference] Revisit scripting language landing page (#127675)
* Update scripting language landing page

* Update index.md
2025-05-07 08:02:12 +02:00
Arianna Laudazzi d90121f048
Update es plugins landing page (#127682) 2025-05-07 07:51:22 +02:00
Oleksandr Kolomiiets 33fdca8bc5
Fix typos in new text docs (#127790) 2025-05-07 08:29:34 +10:00
Oleksandr Kolomiiets 0df9d1c4c2
Text field block loader properly handles null values from delegate (#127525) 2025-05-06 12:29:04 -07:00
Benjamin Trent 8bb7dc4058
Improve HNSW filtered search speed through new heuristic (#126876)
Apache Lucene 10.2 exposes a new search strategy for executing filtered searches over HNSW graphs.

This PR switches to utilizing that strategy by default as it generally provides a much better recall/latency pareto frontier than our regular hnsw fanout search.

Additionally, a new tech-preview setting is provided to potentially revert to the old fanout behavior if issues arise.
2025-05-06 13:41:16 -04:00
Nik Everett 85027384f1
ESQL: Claim transport version to backport #124913 (#127616)
Claims a transport version in main that we will use to backport #124913
to 8.19.
2025-05-01 23:27:42 +02:00
Mike Pellegrini 9f8c9c9c59
Mark semantic text inference_id param as optional (#127586) 2025-04-30 17:10:11 -04:00
Lisa Cawley 465ef17cba
[DOCS] Remove poor link in sql-index-frozen.md (#127543) 2025-04-30 07:59:35 -07:00
Lisa Cawley 3b334da5fe
[DOCS] Fix poor link in community-id-processor.md (#127533) 2025-04-30 07:26:10 -07:00
Lisa Cawley 0b3397d6a5
[DOCS] Remove poor link from painless.md (#127544) 2025-04-30 07:12:26 -07:00
Liam Thompson ba95390895
[DOCS][9.x] Fix tip placement in lookup-join.md (#127552)
h/t @alex-spies
2025-04-30 12:15:14 +02:00
Pete Gillin 061a751a09
Fix a one-word typo in the `date` processor docs (#127548)
This erroneously claimed that the example used a `drop` processor
(which drops whole documents) when it actually uses a `remove`
processor (which removes fields).
2025-04-30 10:03:43 +02:00
Nik Everett 10336c950c
ESQL: Speed loading stored fields (#127348)
This speeds up loading from stored fields by opting more blocks into the
"sequential" strategy. This really kicks in when loading stored fields
like `text`. And when you need less than 100% of documents, but more than,
say, 10%. This is most useful when you need 99.9% of field documents.
That sort of thing. Here's the perf numbers:
```
%100.0 {"took": 403 -> 401,"documents_found":1000000}
%099.9 {"took":3990 -> 436,"documents_found": 999000}
%099.0 {"took":4069 -> 440,"documents_found": 990000}
%090.0 {"took":3468 -> 421,"documents_found": 900000}
%030.0 {"took":1213 -> 152,"documents_found": 300000}
%020.0 {"took": 766 -> 104,"documents_found": 200000}
%010.0 {"took": 397 ->  55,"documents_found": 100000}
%009.0 {"took": 352 -> 375,"documents_found":  90000}
%008.0 {"took": 304 -> 317,"documents_found":  80000}
%007.0 {"took": 273 -> 287,"documents_found":  70000}
%005.0 {"took": 199 -> 204,"documents_found":  50000}
%001.0 {"took":  46 ->  46,"documents_found":  10000}
```

Let's explain this with an example. First, jump to `main` and load a
million documents:
```
rm -f /tmp/bulk
for a in {1..1000}; do
    echo '{"index":{}}' >> /tmp/bulk
    echo '{"text":"text '$(printf %04d $a)'"}' >> /tmp/bulk
done

curl -s -uelastic:password -HContent-Type:application/json -XDELETE localhost:9200/test
for a in {1..1000}; do
    echo -n $a:
    curl -s -uelastic:password -HContent-Type:application/json -XPOST localhost:9200/test/_bulk?pretty --data-binary @/tmp/bulk | grep errors
done
curl -s -uelastic:password -HContent-Type:application/json -XPOST localhost:9200/test/_forcemerge?max_num_segments=1
curl -s -uelastic:password -HContent-Type:application/json -XPOST localhost:9200/test/_refresh
echo
```

Now query them all. Run this a few times until it's stable:
```
echo -n "%100.0 "
curl -s -uelastic:password -HContent-Type:application/json -XPOST 'localhost:9200/_query?pretty' -d'{
    "query": "FROM test | STATS SUM(LENGTH(text))",
    "pragma": {
        "data_partitioning": "shard"
    }
}' | jq -c '{took, documents_found}'
```

Now fetch 99.9% of documents:
```
echo -n "%099.9 "
curl -s -uelastic:password -HContent-Type:application/json -XPOST 'localhost:9200/_query?pretty' -d'{
    "query": "FROM test | WHERE NOT text.keyword IN (\"text 0998\") | STATS SUM(LENGTH(text))",
    "pragma": {
        "data_partitioning": "shard"
    }
}' | jq -c '{took, documents_found}'
```

This should spit out something like:
```
%100.0 { "took":403,"documents_found":1000000}
%099.9 {"took":4098, "documents_found":999000}
```

We're loading *fewer* documents but it's slower! What in the world?!
If you dig into the profile you'll see that it's value loading:
```
$ curl -s -uelastic:password -HContent-Type:application/json -XPOST 'localhost:9200/_query?pretty' -d'{
    "query": "FROM test | STATS SUM(LENGTH(text))",
    "pragma": {
        "data_partitioning": "shard"
    },
    "profile": true
}' | jq '.profile.drivers[].operators[] | select(.operator | contains("ValuesSourceReaderOperator"))'
{
  "operator": "ValuesSourceReaderOperator[fields = [text]]",
  "status": {
    "readers_built": {
      "stored_fields[requires_source:true, fields:0, sequential: true]": 222,
      "text:column_at_a_time:null": 222,
      "text:row_stride:BlockSourceReader.Bytes": 1
    },
    "values_loaded": 1000000,
    "process_nanos": 370687157,
    "pages_processed": 222,
    "rows_received": 1000000,
    "rows_emitted": 1000000
  }
}
$ curl -s -uelastic:password -HContent-Type:application/json -XPOST 'localhost:9200/_query?pretty' -d'{
    "query": "FROM test | WHERE NOT text.keyword IN (\"text 0998\") | STATS SUM(LENGTH(text))",
    "pragma": {
        "data_partitioning": "shard"
    },
    "profile": true
}' | jq '.profile.drivers[].operators[] | select(.operator | contains("ValuesSourceReaderOperator"))'
{
  "operator": "ValuesSourceReaderOperator[fields = [text]]",
  "status": {
    "readers_built": {
      "stored_fields[requires_source:true, fields:0, sequential: false]": 222,
      "text:column_at_a_time:null": 222,
      "text:row_stride:BlockSourceReader.Bytes": 1
    },
    "values_loaded": 999000,
    "process_nanos": 3965803793,
    "pages_processed": 222,
    "rows_received": 999000,
    "rows_emitted": 999000
  }
}
```

It jumps from 370ms to almost four seconds! Loading fewer values! The
second big difference is in the `stored_fields` marker. In the second on
it's `sequential: false` and in the first `sequential: true`.

`sequential: true` uses Lucene's "merge" stored fields reader instead of
the default one. It's much more optimized at decoding sequences of
documents.

Previously we only enabled this reader when loading compact sequences of
documents - when the entire block looks like
```
1, 2, 3, 4, 5, ... 1230, 1231
```

If there are any gaps we wouldn't enable it. That was a very
conservative thing we did long ago without doing any experiments. We
knew it was faster without any gaps, but not otherwise. It turns out
it's a lot faster in a lot more cases. I've measured it as faster for
99% gaps, at least on simple documents. I'm a bit worried that this is
too aggressive, so I've set made it configurable and made the default
being to use the "merge" loader with 10% gaps. So we'd use the merge
loader with a block like:
```
1, 11, 21, 31, ..., 1231, 1241
```
2025-04-29 23:20:15 +02:00
Pete Gillin 35c2b25415
Add info to `date` processor docs (#127434)
This does two things:

 - It describes what the `timezone` option actually does. The existing wording is misleading.
 - It recommends avoiding short abbreviations for timezones such as `PST`. This has come up at least twice recently.
2025-04-29 13:40:36 +01:00
Liam Thompson 32a4462dfe
[DOCS][9.x] Improve ESQL reference docs information architecture (#127248)
* [DOCS][9.0]  Improve ESQL reference docs IA

- reorganized es|ql reference documentation from flat list to logical hierarchy
- created three main sections: syntax reference , special fields, advanced operations
- renamed pages with more consistent and task-oriented titles
- aligned navigation titles with page content
- improved introductory text for each section
- used parallel phrasing for similar concepts
- clarified the relationship between reference docs and conceptual docs


Co-authored-by: Alexander Spies <alexander.spies@elastic.co>
2025-04-25 09:54:45 +02:00
Colleen McGinnis 08552f1c2e
[docs] Fix various syntax and rendering errors (#127062)
* fix syntax and rendering errors

* clean up

* fix versions

* more clean up

* more fixes

* more fixes

* more fixes
2025-04-24 17:57:03 +02:00
Liam Thompson c4cba5a545
[DOCS] Update esql-lookup-join.md (#127306)
- I trimmed the KEEP query in my final iteration in https://github.com/elastic/elasticsearch/pull/127215 but neglected to update the query itself, only the response. This fixes that so the query matches the response.

- 🚘 I also updated the table response to match other ESQL response tables
2025-04-24 12:32:17 +02:00
Liam Thompson 7b95ec4767
[DOCS] Clarify update behavior for indices with semantic_text fields, flag CCS/CCR limitation (#127310) 2025-04-24 12:19:48 +02:00
Ioana Tagirta a684e109f7
Improve listing of index mode options in docs (#127155) 2025-04-24 09:58:16 +02:00
Liam Thompson 2c2e9a5266
[DOCS][ESQL] Cleanup and cross-reference LOOKUP JOIN reference and landing pages (#127215)
* [DOCS][ESQL] Cleanup and cross-reference LOOKUP JOIN reference and landing pages

**lookup-join.md (syntax reference)**:
- removed tip formatting for simpler direct link to landing page
- improved parameter formatting and descriptions
- fixed template variable from `{esql}` to `{{esql}}`

**esql-lookup-join.md (landing page)**:
- added "compare with enrich" section header
- simplified "how the command works" with clearer parameter explanation
- added code example in how it works section
- improved image alt text for accessibility
- organized example section with better context and SQL comparison
- added dropdown for sample tables to reduce visual clutter
- added "query" subheading for clearer organization
- included reference to additional examples in command reference
- removed excessive whitespace

* Improve example, add setup code

replaced abstract employee/language example with security monitoring use case
added setup instructions for creating test indices
included sample data loading via bulk api
new practical query example joining firewall logs with threat data
simplified results output showing threat detection scenario
added note about left-join behavior
improved code comments and structure
added required index.mode: lookup setting info
2025-04-23 13:22:42 +02:00
István Zoltán Szabó 1e7c6abaf6
[DOCS] Fixes formatting issue on dense vector reference page. (#127214) 2025-04-23 11:24:17 +02:00
Ahmed Khan 98a3719e46
Update elasticsearch-keystore.md with special character handling and echo command to enter the password. (#127135)
* Update elasticsearch-keystore.md

Customer needs document update for handling special characters and how we can use the echo command to enter the password.

* Update docs/reference/elasticsearch/command-line-tools/elasticsearch-keystore.md

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

* Update docs/reference/elasticsearch/command-line-tools/elasticsearch-keystore.md

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

* Update elasticsearch-keystore.md

Moving the section out of Examples as advised.

* Update docs/reference/elasticsearch/command-line-tools/elasticsearch-keystore.md

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

* Update docs/reference/elasticsearch/command-line-tools/elasticsearch-keystore.md

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

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-04-23 09:40:38 +02:00
Charlotte Hoblik 838bb0bbd7
fix superscript (#127147) 2025-04-22 18:48:15 +02:00
George Wallace b98a4fa067
Fixing external link (#127114) 2025-04-21 17:57:48 +02:00
Craig Taverner f6a05c6a7c
Support depthOffset in MD docs headings for nesting functions (#126984)
While this change appears subtle at this point, I am using this in a later PR that adds a lot more spatial functions, where nesting them in related groups like this looks much better.

The main impact of this is that the On this page navigator on the right panel of the docs will show the nesting

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-04-19 11:28:05 +02:00
Brian Seeders af6dac5c05
Revert "Forward port release notes for v8.17.5 (#127024)"
This reverts commit 66b504a881.
2025-04-17 16:16:21 -04:00
elasticsearchmachine 66b504a881
Forward port release notes for v8.17.5 (#127024) 2025-04-17 16:15:42 -04:00
David Turner 7e62862eab
Clarify queues in thread pool settings (#127027)
The docs about the queue in a `fixed` pool are a little awkwardly
worded, and there is no mention of the queue in a `scaling` pool at all.
This commit cleans this area up.
2025-04-17 19:58:02 +01:00
Liam Thompson b6c9b9b54d
[DOCS] Update URLs for ESQL Kibana generated docs (#127011) 2025-04-17 18:25:24 +02:00
Samiul Monir afb83b7551
Updating text_similarity_reranker documentation (#127004)
* updating documentation to remove duplicate and redundant wording from 9.x

* Update links to rerank model landing page

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-04-17 11:54:19 -04:00
Tim Vernum e53d3ff64b
Update docs to reflect removal of TLSv1.1 (#126892)
In ES9 and later, we do not enable TLSv1.1 by default,
even if the JDK supports it.

This updates the docs accordingly.

Relates: #121731
2025-04-17 10:15:29 +10:00
Samiul Monir 2e1101cf5e
Updating text_similarity_reranker documentation (#126175)
* Updating text_similarity_reranker documentation

* Updating docs to include urls

* remove extra THE from the text

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2025-04-16 17:05:30 -04:00
Liam Thompson 92148cfde3
[DOCS] Update esql-lookup-join.md to mention index mode requirement (#126901)
*  Update esql-lookup-join.md to mention index mode requirement

* fix 8.x page mapping metadata
2025-04-16 12:15:45 +02:00
Svilen Mihaylov 02f9af732e
Add multi_match function #121525 (#125062)
Implement multi_match function for ESQL. Its currently available on snapshot builds pending refinement of the syntax.
2025-04-15 09:38:08 -04:00
Liam Thompson 7de46e9897
[DOCS] Update es-connectors-salesforce.md (#126828)
* [DOCS] Update es-connectors-salesforce.md

9.x equivalent of https://github.com/elastic/elasticsearch/pull/126791

* Reformat known issues section
2025-04-15 11:47:36 +02:00
Kofi B 08beb534ef
[DOCS] Added sort order explanation (#125182)
* Added explanation of sort order and default behavior

* Update docs/reference/elasticsearch/rest-apis/sort-search-results.md

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

---------

Co-authored-by: George Wallace <georgewallace@users.noreply.github.com>
Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-04-14 10:28:03 +02:00
Craig Taverner ec495e9f0b
Make LOOKUP JOIN docs examples fully tested (#126622)
The current LOOKUP JOIN docs include examples that are not tested by the ES|QL tests, unlike most other examples in the documentation. This PR fixes that, changing two examples to use existing tests, and adding a new csv-spec file for the remaining four examples. These four are not required to show results, so the tests have empty data and do not require any results. This means we are testing only the syntax (parsing and semantic analysis), which is sufficient for the docs.
2025-04-14 09:57:58 +02:00
Jan Kuipers 3f2f5ee158
ES|QL change_point docs and tech preview (#126407)
* ES|QL change point docs

* Move ES|QL change_point to tech preview

* Update docs/reference/query-languages/esql/esql-commands.md

Co-authored-by: Craig Taverner <craig@amanzi.com>

* different example + add it the csv tests

* Restructure change_point docs to new structure

* Added generated test examples to change_point docs

* Fixed a few README.md text mistakes and added more details

* fix grammar

* License check

* regen parser

* Update docs/reference/query-languages/esql/_snippets/commands/layout/change_point.md

Co-authored-by: Craig Taverner <craig@amanzi.com>

---------

Co-authored-by: Craig Taverner <craig@amanzi.com>
2025-04-14 09:56:03 +02:00
Lisa Cawley ae33eaabdb
[DOCS] Fix broken images (#126648) 2025-04-11 19:04:08 -07:00
Nik Everett 55a6624746
ESQL: TO_IP can handle leading zeros (#126532)
Modifies TO_IP so it can handle leading `0`s in ipv4s. Here's how it
works now:
```
ROW ip = TO_IP("192.168.0.1") // OK!
ROW ip = TO_IP("192.168.010.1") // Fails
```

This adds
```
ROW ip = TO_IP("192.168.010.1", {"leading_zeros": "octal"})
ROW ip = TO_IP("192.168.010.1", {"leading_zeros": "decimal"})
```

We do this because there isn't a consensus on how to parse leading zeros
in ipv4s. The standard unix tools like `ping` and `ftp` interpret
leading zeros as octal. Java's built in ip parsing interprets them as
decimal. Because folks are using this for security rules we need to
support all the choices.

Closes #125460
2025-04-11 19:45:14 +02:00
Bogdan Pintea 9784e0ec5f
ESQL: Split grouping functions based on their EVAL-ability (#126597)
This splits the grouping functions in two: those that can be evaluated independently through the EVAL operator (`BUCKET`) and those that don't (like those that that are evaluated through an agg operator, `CATEGORIZE`).

Closes #124608
2025-04-11 16:19:54 +02:00
Colleen McGinnis 24dfda583f
update mapped_pages (#126647) 2025-04-11 08:48:29 -05:00
Kathleen DeRusso 489a38895e
Update chunking_settings docs for semantic_text (#126634)
* Update chunking_settings docs for semantic_text

* Remove redundancy
2025-04-11 08:55:47 -04:00
Liam Thompson ef633d53bd
Add license mention to ESQL categorize (#126666)
* Add license mention to ESQL categorize
exceptional licensing mention in docs
2025-04-11 11:13:12 +02:00
Larisa Motova 1324f82ed2
Update keyword ignore_above documentation for logsdb (#126651)
This commit adds a note that ignore_above has a different limit for
logsdb indices to the documentation.

Related to https://github.com/elastic/docs-content/pull/1092 and
https://github.com/elastic/sdh-elasticsearch/issues/8892
2025-04-10 21:49:47 -10:00
Lisa Cawley 627e3099f6
[DOCS] Add node specifications to API conventions (#126571)
Co-authored-by: shainaraskas <58563081+shainaraskas@users.noreply.github.com>
2025-04-10 19:08:40 +02:00
Lisa Cawley 6c4a230858
[DOCS] Add ranking evaluation API examples (#126577) 2025-04-10 09:50:15 -07:00
Craig Taverner 67b15ad5d8
Split ES|QL functions/operators/commands into separate pages for similar functions and make commands examples generated (#126279)
While the internal structure of the docs is already split into many (over 1000) sub-pages, the final display for the `Functions and Operators` page is a single giant page, making navigation harder. This PR splits it into separate pages, one for each group of similar functions and one for the operators. Twelve new pages.

This PR also bundles a few other related changes. In total what is done is:
* Split functions/operators into 12 pages, one for each group, maintaining the existing split of each function/operator into a snippet with dynamically generated examples
* Split esql-commands.md into source-commands.md and processing-commands.md, each of which is split into individual snippets, one for each command
* Each command snippet has it's examples split out into separate files, if they were examples that were dynamically generated in the older asciidoc system
* The examples files are overwritten by the ES|QL unit tests, using a similar mechanism to the examples written for functions and operators)
* Some additional refinements to the Kibana definition and markdown files (nicer operator headings, and display text)
2025-04-10 15:56:05 +02:00
Charlotte Hoblik e9d3328903
[DOCS]: Move ES connectors `Known issues` page in 9.0+ (#126600)
* add known issues page to es connectors

* update known issues

* Update docs/reference/search-connectors/es-connectors-known-issues.md

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

* Update docs/reference/search-connectors/es-connectors-known-issues.md

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

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
2025-04-10 15:26:20 +02:00
Colleen McGinnis 1b021c58df
fix cross-repo link syntax (#126554) 2025-04-09 14:46:19 -04:00
Ryan Ernst 3bac50e818
Use logs dir as working directory (#124966)
In the unexpected case that Elasticsearch dies due to a segfault or
other similar native issue, a core dump is useful in diagnosing the
problem. Yet core dumps are written to the working directory, which is
read-only for most installations of Elasticsearch. This commit changes
the working directory to the logs dir which should always be writeable.
2025-04-09 07:07:11 -07:00
Iván Cea Fontenla 90dcccfc96
ESQL: Updated RENAME docs with the behaviour of multiple column renames (#126462)
* ESQL: Updated RENAME docs with the behaviour of multiple column renames

* Added rename example to csv-spec
2025-04-09 12:39:10 +02:00
Gal Lalouche 953b9fbb83
ESQL: List/get query API (#124832)
This PR adds two new REST endpoints, for listing queries and getting information on a current query.

* Resolves #124827 
* Related to #124828 (initial work)

Changes from the API specified in the above issues:
* The get API is pretty initial, as we don't have a way of fetching the memory used or number of rows processed.

List queries response:
```
GET /_query/queries
// returns for each of the running queries
// query_id, start_time, running_time, query

{ "queries" : {
 "abc": {
  "id": "abc",
  "start_time_millis": 14585858875292,
  "running_time_nanos": 762794,
  "query": "FROM logs* | STATS BY hostname"
  },
 "4321": {
  "id":"4321",
  "start_time_millis": 14585858823573,
  "running_time_nanos": 90231,
  "query": "FROM orders | LOOKUP country_code ON country"
  }
 } 
}
```

Get query response:
```
GET /_query/queries/abc

{
 "id" : "abc",
  "start_time_millis": 14585858875292,
  "running_time_nanos": 762794,
  "query": "FROM logs* | STATS BY hostname"
  "coordinating_node": "oTUltX4IQMOUUVeiohTt8A"
  "data_nodes" : [ "DwrYwfytxthse49X4", "i5msnbUyWlpe86e7"]
}
```
2025-04-08 22:21:32 +03:00
Slobodan Adamović 284121ad9f
Set `keyUsage` for generated HTTP certificates and self-signed CA (#126376)
The `elasticsearch-certutil http` command, and security auto-configuration, 
generate the HTTP certificate and CA without setting the `keyUsage` extension.

This PR fixes this by setting (by default):
- `keyCertSign` and `cRLSign` for self-signed CAs 
- `digitalSignature` and `keyEncipherment` for HTTP certificates and CSRs

These defaults can be overridden when running `elasticsearch-certutil http` 
command. The user will be prompted to change them as they wish.

For `elasticsearch-certutil ca`, the default value can be overridden by passing 
the `--keysage` option, e.g.
```
elasticsearch-certutil ca --keyusage "digitalSignature,keyCertSign,cRLSign" -pem    
```

Fixes #117769
2025-04-08 09:44:09 +02:00
Craig Taverner 1f6518f371
Document special behaviour of ignore_malformed for geo_point mappings (#125692)
With `geo_point` fields, here is the special case of values that have a syntactically valid format, but the numerical values for `latitude` and `longitude` are out of range.

If `ignore_malformed` is `false`, an exception will be thrown as usual. But if it is `true`, the document will be indexed correctly, by normalizing the latitude and longitude values into the valid range. The special `_ignored` field will not be set. The original source document will remain as before, but indexed values, doc-values and stored fields will all be normalized.
2025-04-07 11:05:51 +02:00
Lisa Cawley 1d1feb6010
[DOCS] Migrate search profile API examples (#126347) 2025-04-04 22:42:09 +01:00
George Wallace ce8b418686
Update esql-lookup-join.md (#126290) 2025-04-04 09:43:45 -06:00
Kathleen DeRusso e7d4a28a87
Support configurable chunking in semantic_text fields (#121041)
* test

* Revert "test"

This reverts commit 9f4e2adba0.

* Refactor InferenceService to allow passing in chunking settings

* Add chunking config to inference field metadata and store in semantic_text field

* Fix test compilation errors

* Hacking around trying to get ingest to work

* Debugging

* [CI] Auto commit changes from spotless

* POC works and update TODO to fix this

* [CI] Auto commit changes from spotless

* Refactor chunking settings from model settings to field inference request

* A bit of cleanup

* Revert a bunch of changes to try to narrow down what broke CI

* test

* Revert "test"

This reverts commit 9f4e2adba0.

* Fix InferenceFieldMetadataTest

* [CI] Auto commit changes from spotless

* Add chunking settings back in

* Update builder to use new map

* Fix compilation errors after merge

* Debugging tests

* debugging

* Cleanup

* Add yaml test

* Update tests

* Add chunking to test inference service

* Trying to get tests to work

* Shard bulk inference test never specifies chunking settings

* Fix test

* Always process batches in order

* Fix chunking in test inference service and yaml tests

* [CI] Auto commit changes from spotless

* Refactor - remove convenience method with default chunking settings

* Fix ShardBulkInferenceActionFilterTests

* Fix ElasticsearchInternalServiceTests

* Fix SemanticTextFieldMapperTests

* [CI] Auto commit changes from spotless

* Fix test data to fit within bounds

* Add additional yaml test cases

* Playing with xcontent parsing

* A little cleanup

* Update docs/changelog/121041.yaml

* Fix failures introduced by merge

* [CI] Auto commit changes from spotless

* Address PR feedback

* [CI] Auto commit changes from spotless

* Fix predicate in updated test

* Better handling of null/empty ChunkingSettings

* Update parsing settings

* Fix errors post merge

* PR feedback

* [CI] Auto commit changes from spotless

* PR feedback and fix Xcontent parsing for SemanticTextField

* Remove chunking settings check to use what's passed in from sender service

* Fix some tests

* Cleanup

* Test failure whack-a-mole

* Cleanup

* Refactor to handle memory optimized bulk shard inference actions - this is ugly but at least it compiles

* [CI] Auto commit changes from spotless

* Minor cleanup

* A bit more cleanup

* Spotless

* Revert change

* Update chunking setting update logic

* Go back to serializing maps

* Revert change to model settings - source still errors on missing model_id

* Fix updating chunking settings

* Look up model if null

* Fix test

* Work around https://github.com/elastic/elasticsearch/issues/125723 in semantic text field serialization

* Add BWC tests

* Add chunking_settings to docs

* Refactor/rename

* Address minor PR feedback

* Add test case for null update

* PR feedback - adjust refactor of chunked inputs

* Refactored AbstractTestInferenceService to return offsets instead of just Strings

* [CI] Auto commit changes from spotless

* Fix tests where chunk output was of size 3

* Update mappings per PR feedback

* PR Feedback

* Fix problems related to merge

* PR optimization

* Fix test

* Delete extra file

---------

Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co>
2025-04-03 17:45:26 -04:00
kanoshiou 30b2a1f729
ESQL: Enhanced `DATE_TRUNC` with arbitrary intervals (#120302)
Originally, `DATE_TRUNC` only supported 1-month and 3-month intervals for months, and 1-year interval for years, while arbitrary intervals were supported for weeks and days. This PR adds support for `DATE_TRUNC` with arbitrary month and year intervals. 

Closes #120094
2025-04-03 16:55:56 +02:00
Benjamin Trent 33dcc921be
Mark rescore_vector as generally available (#126038)
* Mark rescore_vector as generally available

* Update docs/changelog/126038.yaml
2025-04-02 16:10:01 -04:00
Joe Gallo 078f7ff9f7
Minor docs fixes (#126143) 2025-04-02 12:30:07 -04:00
Nik Everett d30296229b
ESQL: Hide some "extras" from docs (#124763)
Hides some of the "extra" lines from ESQL's documentation. These lines
are required to make the documentation into nice tests which is
important to make sure the docs don't get out of date. But readers don't
need to see them.
2025-04-01 21:24:15 +01:00
Colleen McGinnis d966938842
add missing mapped pages (#126054) 2025-04-01 19:41:37 +02:00
Craig Taverner 7b263b4b83
Kibana updates, remove links from JSON and split is-null/is-not-null (#125986)
In particular:
* Remove all links (both asciidoc and markdown) from the JSON definition files.
  * This required a two phase edit, from asciidoc links to markdown, and then removal of markdown (replace with markdown text). This is because the asciidoc does not have the display text, and because some links were already markdown.
* Split predicates into is_null and is_not_null
  * We kept the old combined version because the main docs still use that, so now we have both combined and separate versions, and Kibana can select the version they want.
2025-04-01 15:46:24 +02:00
Brandon Morelli 74e4ce23e0
Update limitations.md (#125893) 2025-03-28 22:35:41 +01:00
Craig Taverner 98a2c711f8
Refine ESQL docs handling of applies_to (#125835)
This primarily splits the old preview:true warning from the newer applies_to approach. Since all of our current applies_to examples are actually just behaviour modifications of current functions, we do not use the official docs {applies_to} syntax. However there is code to make use of that in the case where we have an entirely new function which will appear in a new version.

Co-authored-by: Alexander Spies <alexander.spies@elastic.co>
2025-03-28 22:09:15 +01:00
Bogdan Pintea 1bd80d10a6
ESQL: supplement docs on LIMIT (#125839)
This adds a few extra details around how ESQL processes input docs and
how it limits output results.

Closes #125819
2025-03-29 06:03:27 +11:00
Mayya Sharipova 332abe4198
[DOCS] Clarify that min_score applies to aggs (#125882)
Clarify that min_score param of a search request
also applies to aggregations.
2025-03-28 14:41:14 -04:00
Colleen McGinnis adccaa66a4
remove reliance on redirects in docs-content (#125863) 2025-03-28 16:41:38 +01:00
Alexander Spies ea98166919
ESQL: Improve LOOKUP JOIN page (#125688) (#125798)
Forward port of #125688
2025-03-28 09:07:28 +01:00
Benjamin Trent 009a86a0e3
Allow zero for rescore_vector.oversample to indicate by-passing oversample and rescoring (#125599)
This allows a `rescore_vector: {oversample: 0}` to indicate bypassing
oversampling and rescoring. 

This is useful for:

 - Updating a quantized mapping to turn off automatic rescoring
 - Bypassing oversampling at query time in an ad-hoc manner if its on by default in the mapping

closes: https://github.com/elastic/elasticsearch/issues/125157
2025-03-27 06:56:51 +11:00
Larisa Motova 10719831b5
[ES|QL] Add ToAggregateMetricDouble example (#125518)
Adds AggregateMetricDouble to the ES|QL CSV tests and examples of how to
use the ToAggregateMetricDouble function
2025-03-26 07:56:48 -10:00
Bogdan Pintea b6b8159ed9
SQL: Docs: Drop examples of LIKE/RLIKE vs QUERY/MATCH equivalence (#125673)
This drops the examples of LIKE/RLIKE vs QUERY/MATCH equivalence.
2025-03-27 03:28:38 +11:00
Karen Metts f0168b4b84
Doc: Update links to logstash plugin docs (#125675)
* Add logstash plugin repo to cross_links
2025-03-26 11:54:37 -04:00
Tommaso Teofili 7a610c30fd
[docs] nested knn only supports score_mode max (#125582)
* [docs] nested knn only supports score_mode max
2025-03-26 11:31:43 +01:00
Colleen McGinnis 162763bd13
[docs] More updates for docs-assembler (#125509)
* update docset.yml, add reference/toc.yml, update reference/elasticsearch/index.md

* Update docs/docset.yml

* add index.md
2025-03-24 14:20:14 -05:00
Alexander Spies f8536aadda
ESQL: Add more details on ENRICH vs. LOOKUP JOIN to docs (#125487)
* Add more details on ENRICH vs. LOOKUP JOIN
* Move example, fix syntax formatting
2025-03-24 16:26:28 +01:00
Craig Taverner 8ffecb408d
Additional support for docs for ES|QL operators and version-specific differentiation (#125251)
This PR was originally focused on improving support for Kibana docs, in particular the missing operator docs, but it has expanded to cover a bunch of related things:

* Primarily the main work was to improve operators support. ESQL generated docs cover all functions and most operators for which their is a clear operator class and test class. However, some are built-in behaviour and need additional support. This PR adds more generated content for those operators.
* Various specific operators requested by Kibana: Cast & null-predicates, and in particular the addition of examples
* Two functions without examples: mv_append and to_date_nanos
* Many small visual document cleanups (spelling, grammar, capitalization, etc.)
* Initial support for `applies_to` for multi-version differentiation.

This last point requires more work, as it is not yet agreed on just how we want this to look. We'll probably need to do refinements in followup PR. Consider the version in this PR as a first step into how this could look.
2025-03-24 09:56:45 +01:00
Jeremy Dahlgren d7995975d9
Add cache support in TransportGetAllocationStatsAction (#124898)
Adds a new cache and setting
TransportGetAllocationStatsAction.CACHE_TTL_SETTING
"cluster.routing.allocation.stats.cache.ttl" to configure the max age
for cached NodeAllocationStats on the master.  The default
value is currently 1 minute per the suggestion in issue 110716.

Closes #110716
2025-03-21 20:35:40 +02:00
Liam Thompson 397c9c59c7
Clarify regex character range case insensitivity limitations (#125413)
* Update regexp-syntax.md

9.x equivalent of https://github.com/elastic/elasticsearch/pull/125412

* use md syntax
2025-03-21 18:43:44 +02:00
Carlos Delgado 160ac698d7
ES|QL: Add default values for match function options (#125282) 2025-03-21 10:44:41 +01:00
Colleen McGinnis 9bcd59596d
[docs] Prepare for docs-assembler (#125118)
* reorg files for docs-assembler and create toc.yml files

* fix build error, add redirects

* only toc

* move images
2025-03-20 12:09:12 -05:00
Mike Pellegrini f67b5d6e95
Mark semantic text as GA in docs (#124669) 2025-03-20 08:13:00 -04:00
Lisa Cawley ec0f8be34d
[DOCS] Clean up Asciidoc links in markdown files (#125046) 2025-03-19 08:03:55 -07:00
Craig Taverner 65dfaf1c91
Rewrite Kibana docs asciidoc links to be MD links (#125155)
Did a few things:
* Rewrite Kibana docs asciidoc links to be MD links
* Make kibana docs links absolute to planned publication path
* Clarify which operators are generated and which are static
* Removed the trailing .md from kibana docs links
2025-03-19 13:56:05 +01:00
Kofi B e34bfd166a
[DOCS] Opster Migration: Nested bool query addition (#124455)
added section related to nested bool queries to provide a more clear example and clean up surrounding language and grammatical issues
2025-03-18 20:42:31 -05:00
Larisa Motova 08ae54e423
[ES|QL] ToAggregateMetricDouble function (#124595)
This commit adds a conversion function from numerics (and aggregate
metric doubles) to aggregate metric doubles.

It is most useful when you have multiple indices, where one index uses
aggregate metric double (e.g. a downsampled index) and another uses a
normal numeric type like long or double (e.g. an index prior to
downsampling).
2025-03-18 11:39:27 -10:00
Charlotte Hoblik 64a56439a6
[DOCS] Restructure user settings reference pages (#125000)
* add elasticsearch settings page

* add logo to ech applicable settings

* removing ECH settings page

* removing duplicate information from ECH

* move settings to correcponding page

* update configuration page

* fix link

* Add applies_to frontmatter to auditing settings

* remove duplicate how-to pages

* fix broken links

* replce cloud icon text

* adjust settings pages

* add applies_to tag

---------

Co-authored-by: lcawl <lcawley@elastic.co>
2025-03-18 18:18:49 +01:00
Craig Taverner 50a7eb09d4
Fix ES|QL build.gradle for configuration-cache (#125097)
Earlier work on the ES|QL port of docs to V3 introduced an issue in the build.gradle file making it fail with --configuration-cache. This fixes that, as well as one other broken link and removes some unused files.

In addition we bring back partial support for deleting unused files. It is tricky to have full support for this due to the mix of static and generated content, particularly in the operators snippets.
2025-03-18 17:15:53 +01:00
David Turner a2d98e44a1
Upgrade `discovery-ec2` to AWS SDK v2 (#122062) 2025-03-18 19:38:16 +11:00
Craig Taverner 94cad286bc
Restructure query-languages docs files for clarity (#124797)
In a few previous PR's we restructured the ES|QL docs to make it possible to generate them dynamically.

This PR just moves a few files around to make the query languages docs easier to work with, and a little more organized like the ES|QL docs.

A bit part of this was setting up redirects to the new locations, so other repo's could correctly link to the elasticsearch docs.
2025-03-17 17:58:58 +01:00
Charlotte Hoblik c9724557a2
add signposts to docs-content (#124866) 2025-03-17 11:41:52 +01:00
David Turner 37a559c57d
Mention zero-window state in networking docs (#124967)
Clarify that it is expected sometimes to see inter-node connections
sending zero-window advertisements as part of the usual TCP backpressure
mechanism.
2025-03-16 19:43:29 +00:00
George Wallace 472536c189
lookup join docs (#124531)
* lookup join docs


---------

Co-authored-by: Alexander Spies <alexander.spies@elastic.co>
2025-03-13 12:47:58 -06:00
Benjamin Trent b2c1c4e0f0
New `vector_rescore` parameter as a quantized index type option (#124581)
This adds a new parameter to the quantized index mapping that allows
default oversampling and rescoring to occur. 

This doesn't adjust any of the defaults. It allows it to be configured.
When the user provides `rescore_vector: {oversample: <number>}` in the
query it will overwrite it.

For example, here is how to use it with bbq:

```
PUT rescored_bbq
{
  "mappings": {
    "properties": {
      "vector": {
        "type": "dense_vector",
        "index_options": {
          "type": "bbq_hnsw",
          "rescore_vector": {"oversample": 3.0}
        }
      }
    }
  }
}
```

Then, when querying, it will auto oversample the `k` by `3x` and rerank
with the raw vectors.

```
POST _search
{
  "knn": {
    "query_vector": [...],
    "field": "vector"
  }
}
```
2025-03-14 00:40:08 +11:00
Craig Taverner d5ddb909a4
ESQL autogenerate docs v3 (#124312)
Building on the work started in https://github.com/elastic/elasticsearch/pull/123904, we now want to auto-generate most of the small subfiles from the ES|QL functions unit tests.

This work also investigates any remaining discrepancies between the original asciidoc version and the new markdown, and tries to minimize differences so the docs do not look too different.

The kibana json and markdown files are moved to a new location, and the operator docs are a little more generated than before (although still largely manual).
2025-03-13 14:16:46 +01:00
Charlotte Hoblik 9e754ec8f6
[DOCS] Plugin management reference cleanup (#124578)
* add content to plugin management

* add content to Plugin Management

* Update docs/reference/elasticsearch-plugins/plugin-management.md

Co-authored-by: florent-leborgne <florent.leborgne@elastic.co>

* fix applies-to tag

* add ech to docset.yml

---------

Co-authored-by: florent-leborgne <florent.leborgne@elastic.co>
2025-03-12 17:01:10 +01:00
kanoshiou deff3df9f0
ES|QL: Support `::date` in inline cast (#123460)
* Inline cast to date

* Update docs/changelog/123460.yaml

* New capability for `::date` casting

* More tests

* Update tests

---------

Co-authored-by: Fang Xing <155562079+fang-xing-esql@users.noreply.github.com>
2025-03-11 17:08:10 -04:00
Mark Tozzi 3e949479d8
ESQL - Include thread names in profile output (#124262)
Resolves #123053

This adds the thread name to the driver sleep profile output.
---------

Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co>
2025-03-11 15:53:22 +01:00
Carlos Delgado 2b40e73fe9
ES|QL - Add scoring for full text functions disjunctions (#121793) 2025-03-11 15:29:15 +01:00
Jan Calanog 435d1db5b9
Remove subs attribute (#124551) 2025-03-11 12:14:58 +01:00
Charlotte Hoblik e51b50139b
Fix external URI images (#124350) 2025-03-10 11:31:47 +01:00
David Kilfoyle e158cd868b
[Docs] Fix cross-repo links to Beats docs (#124360)
Co-authored-by: Colleen McGinnis <colleen.mcginnis@elastic.co>
2025-03-07 14:38:46 -05:00
Svilen Mihaylov ee4bcac1db
Added optional parameters to QSTR ES|QL function (#121787)
Adds options to QSTR function.

#118619 added named function parameters. This PR uses this mechanism for allowing query string function parameters, so query string parameters can be used in ES|QL.

Closes #120933
2025-03-07 13:00:22 -05:00
Kostas Krikellas 296cae8a30
[DOCS] Document source-related restrictions (#124011)
* Document source-related restrictions

* Update mapping-source-field.md

* Update docs/reference/elasticsearch/mapping-reference/mapping-source-field.md

Co-authored-by: Marci W <333176+marciw@users.noreply.github.com>

* Update mapping-source-field.md

---------

Co-authored-by: Marci W <333176+marciw@users.noreply.github.com>
2025-03-06 11:38:09 -05:00
Colleen McGinnis 23be51a04f
[DOCS] fix external links (#124248) 2025-03-06 17:27:03 +01:00
Marci W bea3af2467
[DOCS] Clarify support for doc_values (#124047)
* Update doc-values.md

* Make the note more visible

* fix link
2025-03-06 09:01:19 -05:00
Lee Hinman 47706b505f
Add index mode to get data stream API (#122486)
This commit adds the `index_mode` for both the data stream and each
backing index to the output of `GET /_data_stream`. An example looks
like:

```
{
  "data_streams" : [
    {
      "name" : "foo-things",
      "indices" : [
        {
          "index_name" : ".ds-foo-things-2025.02.13-000001",
          ...
          "index_mode" : "standard"
        }
      ],
      ...
      "index_mode" : "standard"
    },
    {
      "name" : "logs-foo-bar",
      "indices" : [
        {
          "index_name" : ".ds-logs-foo-bar-2025.02.13-000001",
          ...
          "index_mode" : "logsdb"
        },
        {
          "index_name" : ".ds-logs-foo-bar-2025.02.13-000002",
          ...
          "index_mode" : "logsdb"
        }
      ],
      ...
      "index_mode" : "logsdb",
    }
  ]
}
```
2025-03-06 07:39:58 +11:00
shainaraskas a06c8ea5b8
Update node-settings.md (#123997)
* Update node-settings.md

Port change https://github.com/elastic/elasticsearch/pull/123939 forward to new docs system

* Update docs/reference/elasticsearch/configuration-reference/node-settings.md
2025-03-05 11:21:16 -05:00
Liam Thompson 2456cd375a
Add note to servicenow connector ref (#124101) 2025-03-05 15:26:22 +01:00