diff --git a/.backportrc.json b/.backportrc.json
index 59843f4d5f134..53275ddc8563d 100644
--- a/.backportrc.json
+++ b/.backportrc.json
@@ -1,9 +1,9 @@
{
"upstream" : "elastic/elasticsearch",
- "targetBranchChoices" : [ "main", "8.14", "8.13", "8.12", "8.11", "8.10", "8.9", "8.8", "8.7", "8.6", "8.5", "8.4", "8.3", "8.2", "8.1", "8.0", "7.17", "6.8" ],
+ "targetBranchChoices" : [ "main", "8.15", "8.14", "8.13", "8.12", "8.11", "8.10", "8.9", "8.8", "8.7", "8.6", "8.5", "8.4", "8.3", "8.2", "8.1", "8.0", "7.17", "6.8" ],
"targetPRLabels" : [ "backport" ],
"branchLabelMapping" : {
- "^v8.15.0$" : "main",
+ "^v8.15.3$" : "main",
"^v(\\d+).(\\d+).\\d+(?:-(?:alpha|beta|rc)\\d+)?$" : "$1.$2"
}
}
\ No newline at end of file
diff --git a/.buildkite/hooks/pre-command b/.buildkite/hooks/pre-command
index b6b730fc3de8b..a47079a98e10d 100644
--- a/.buildkite/hooks/pre-command
+++ b/.buildkite/hooks/pre-command
@@ -105,3 +105,11 @@ EOF
Agent information from gobld
EOF
fi
+
+# Amazon Linux 2 has DNS resolution issues with resource-based hostnames in EC2
+# We have many functional tests that try to lookup and resolve the hostname of the local machine in a particular way
+# And they fail. This sets up a manual entry for the hostname in dnsmasq.
+if [[ -f /etc/os-release ]] && grep -q '"Amazon Linux 2"' /etc/os-release; then
+ echo "$(hostname -i | cut -d' ' -f 2) $(hostname -f)." | sudo tee /etc/dnsmasq.hosts
+ sudo systemctl restart dnsmasq.service
+fi
diff --git a/.buildkite/pipelines/dra-workflow.yml b/.buildkite/pipelines/dra-workflow.yml
index 32a2b7d22134a..bcc6c9c57d756 100644
--- a/.buildkite/pipelines/dra-workflow.yml
+++ b/.buildkite/pipelines/dra-workflow.yml
@@ -7,7 +7,7 @@ steps:
image: family/elasticsearch-ubuntu-2204
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
+ diskSizeGb: 350
- wait
# The hadoop build depends on the ES artifact
# So let's trigger the hadoop build any time we build a new staging artifact
diff --git a/.buildkite/pipelines/intake.template.yml b/.buildkite/pipelines/intake.template.yml
index 1a513971b2c10..f530f237113a9 100644
--- a/.buildkite/pipelines/intake.template.yml
+++ b/.buildkite/pipelines/intake.template.yml
@@ -7,7 +7,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- wait
- label: part1
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart1
@@ -17,7 +16,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part2
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart2
timeout_in_minutes: 300
@@ -26,7 +24,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part3
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart3
timeout_in_minutes: 300
@@ -35,7 +32,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part4
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart4
timeout_in_minutes: 300
@@ -44,7 +40,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part5
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart5
timeout_in_minutes: 300
@@ -53,7 +48,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- group: bwc-snapshots
steps:
- label: "{{matrix.BWC_VERSION}} / bwc-snapshots"
@@ -67,7 +61,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: "{{matrix.BWC_VERSION}}"
- label: rest-compat
@@ -78,7 +71,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- wait
- trigger: elasticsearch-dra-workflow
label: Trigger DRA snapshot workflow
diff --git a/.buildkite/pipelines/intake.yml b/.buildkite/pipelines/intake.yml
index 4124d4e550d11..afb7b7b522193 100644
--- a/.buildkite/pipelines/intake.yml
+++ b/.buildkite/pipelines/intake.yml
@@ -8,7 +8,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- wait
- label: part1
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart1
@@ -18,7 +17,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part2
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart2
timeout_in_minutes: 300
@@ -27,7 +25,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part3
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart3
timeout_in_minutes: 300
@@ -36,7 +33,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part4
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart4
timeout_in_minutes: 300
@@ -45,7 +41,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part5
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart5
timeout_in_minutes: 300
@@ -54,7 +49,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- group: bwc-snapshots
steps:
- label: "{{matrix.BWC_VERSION}} / bwc-snapshots"
@@ -62,13 +56,12 @@ steps:
timeout_in_minutes: 300
matrix:
setup:
- BWC_VERSION: ["7.17.23", "8.14.2", "8.15.0"]
+ BWC_VERSION: ["7.17.25", "8.15.3"]
agents:
provider: gcp
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: "{{matrix.BWC_VERSION}}"
- label: rest-compat
@@ -79,7 +72,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- wait
- trigger: elasticsearch-dra-workflow
label: Trigger DRA snapshot workflow
diff --git a/.buildkite/pipelines/lucene-snapshot/build-snapshot.yml b/.buildkite/pipelines/lucene-snapshot/build-snapshot.yml
index 1f69b8faa7ab4..8cf2a8aacbece 100644
--- a/.buildkite/pipelines/lucene-snapshot/build-snapshot.yml
+++ b/.buildkite/pipelines/lucene-snapshot/build-snapshot.yml
@@ -15,7 +15,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- wait
- trigger: "elasticsearch-lucene-snapshot-tests"
build:
diff --git a/.buildkite/pipelines/lucene-snapshot/run-tests.yml b/.buildkite/pipelines/lucene-snapshot/run-tests.yml
index 49c3396488d82..c76c54a56494e 100644
--- a/.buildkite/pipelines/lucene-snapshot/run-tests.yml
+++ b/.buildkite/pipelines/lucene-snapshot/run-tests.yml
@@ -7,7 +7,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- wait: null
- label: part1
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart1
@@ -17,7 +16,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part2
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart2
timeout_in_minutes: 300
@@ -26,7 +24,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part3
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart3
timeout_in_minutes: 300
@@ -35,7 +32,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part4
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart4
timeout_in_minutes: 300
@@ -44,7 +40,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: part5
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-task-input-files checkPart5
timeout_in_minutes: 300
@@ -53,7 +48,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- group: bwc-snapshots
steps:
- label: "{{matrix.BWC_VERSION}} / bwc-snapshots"
@@ -70,7 +64,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: "{{matrix.BWC_VERSION}}"
- label: rest-compat
@@ -81,4 +74,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/periodic-packaging.bwc.template.yml b/.buildkite/pipelines/periodic-packaging.bwc.template.yml
index 8a6fa2553b204..b06bc80d3535d 100644
--- a/.buildkite/pipelines/periodic-packaging.bwc.template.yml
+++ b/.buildkite/pipelines/periodic-packaging.bwc.template.yml
@@ -11,6 +11,5 @@
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: $BWC_VERSION
diff --git a/.buildkite/pipelines/periodic-packaging.template.yml b/.buildkite/pipelines/periodic-packaging.template.yml
index 64c5fa5060e6c..14a2fd7ba1bc4 100644
--- a/.buildkite/pipelines/periodic-packaging.template.yml
+++ b/.buildkite/pipelines/periodic-packaging.template.yml
@@ -7,8 +7,6 @@ steps:
matrix:
setup:
image:
- - centos-7
- - debian-10
- debian-11
- opensuse-leap-15
- oraclelinux-7
diff --git a/.buildkite/pipelines/periodic-packaging.yml b/.buildkite/pipelines/periodic-packaging.yml
index 4217fc91bf0fd..70128211a39c0 100644
--- a/.buildkite/pipelines/periodic-packaging.yml
+++ b/.buildkite/pipelines/periodic-packaging.yml
@@ -8,8 +8,6 @@ steps:
matrix:
setup:
image:
- - centos-7
- - debian-10
- debian-11
- opensuse-leap-15
- oraclelinux-7
@@ -46,7 +44,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.0.1
@@ -63,7 +60,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.1.1
@@ -80,7 +76,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.2.1
@@ -97,7 +92,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.3.2
@@ -114,7 +108,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.4.2
@@ -131,7 +124,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.5.2
@@ -148,7 +140,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.6.2
@@ -165,7 +156,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.7.1
@@ -182,7 +172,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.8.1
@@ -199,7 +188,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.9.3
@@ -216,7 +204,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.10.2
@@ -233,7 +220,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.11.2
@@ -250,7 +236,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.12.1
@@ -267,7 +252,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.13.4
@@ -284,7 +268,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.14.2
@@ -301,7 +284,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.15.2
@@ -318,12 +300,11 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 7.16.3
- - label: "{{matrix.image}} / 7.17.23 / packaging-tests-upgrade"
- command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.17.23
+ - label: "{{matrix.image}} / 7.17.25 / packaging-tests-upgrade"
+ command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v7.17.25
timeout_in_minutes: 300
matrix:
setup:
@@ -335,9 +316,8 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
- BWC_VERSION: 7.17.23
+ BWC_VERSION: 7.17.25
- label: "{{matrix.image}} / 8.0.1 / packaging-tests-upgrade"
command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.0.1
@@ -352,7 +332,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.0.1
@@ -369,7 +348,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.1.3
@@ -386,7 +364,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.2.3
@@ -403,7 +380,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.3.3
@@ -420,7 +396,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.4.3
@@ -437,7 +412,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.5.3
@@ -454,7 +428,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.6.2
@@ -471,7 +444,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.7.1
@@ -488,7 +460,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.8.2
@@ -505,7 +476,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.9.2
@@ -522,7 +492,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.10.4
@@ -539,7 +508,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.11.4
@@ -556,7 +524,6 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.12.2
@@ -573,12 +540,11 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: 8.13.4
- - label: "{{matrix.image}} / 8.14.2 / packaging-tests-upgrade"
- command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.14.2
+ - label: "{{matrix.image}} / 8.14.3 / packaging-tests-upgrade"
+ command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.14.3
timeout_in_minutes: 300
matrix:
setup:
@@ -590,12 +556,11 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
- BWC_VERSION: 8.14.2
+ BWC_VERSION: 8.14.3
- - label: "{{matrix.image}} / 8.15.0 / packaging-tests-upgrade"
- command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.15.0
+ - label: "{{matrix.image}} / 8.15.3 / packaging-tests-upgrade"
+ command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.15.3
timeout_in_minutes: 300
matrix:
setup:
@@ -607,9 +572,8 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
- BWC_VERSION: 8.15.0
+ BWC_VERSION: 8.15.3
- group: packaging-tests-windows
steps:
diff --git a/.buildkite/pipelines/periodic-platform-support.yml b/.buildkite/pipelines/periodic-platform-support.yml
index 867ebe41ed6af..86e0623ba5b87 100644
--- a/.buildkite/pipelines/periodic-platform-support.yml
+++ b/.buildkite/pipelines/periodic-platform-support.yml
@@ -7,8 +7,6 @@ steps:
matrix:
setup:
image:
- - centos-7
- - debian-10
- debian-11
- opensuse-leap-15
- oraclelinux-7
@@ -30,7 +28,6 @@ steps:
localSsds: 1
localSsdInterface: nvme
machineType: custom-32-98304
- diskSizeGb: 250
env: {}
- group: platform-support-windows
steps:
diff --git a/.buildkite/pipelines/periodic.bwc.template.yml b/.buildkite/pipelines/periodic.bwc.template.yml
index b22270dbf221c..43a0a7438d656 100644
--- a/.buildkite/pipelines/periodic.bwc.template.yml
+++ b/.buildkite/pipelines/periodic.bwc.template.yml
@@ -7,7 +7,6 @@
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: $BWC_VERSION
retry:
diff --git a/.buildkite/pipelines/periodic.template.yml b/.buildkite/pipelines/periodic.template.yml
index 87e30a0ea73ba..110226d44c90e 100644
--- a/.buildkite/pipelines/periodic.template.yml
+++ b/.buildkite/pipelines/periodic.template.yml
@@ -25,7 +25,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: example-plugins
command: |-
cd $$WORKSPACE/plugins/examples
@@ -37,7 +36,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- group: java-fips-matrix
steps:
- label: "{{matrix.ES_RUNTIME_JAVA}} / {{matrix.GRADLE_TASK}} / java-fips-matrix"
@@ -59,7 +57,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
ES_RUNTIME_JAVA: "{{matrix.ES_RUNTIME_JAVA}}"
GRADLE_TASK: "{{matrix.GRADLE_TASK}}"
@@ -76,7 +73,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
ES_RUNTIME_JAVA: "{{matrix.ES_RUNTIME_JAVA}}"
BWC_VERSION: "{{matrix.BWC_VERSION}}"
@@ -105,7 +101,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
ES_RUNTIME_JAVA: "{{matrix.ES_RUNTIME_JAVA}}"
GRADLE_TASK: "{{matrix.GRADLE_TASK}}"
@@ -126,7 +121,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
ES_RUNTIME_JAVA: "{{matrix.ES_RUNTIME_JAVA}}"
BWC_VERSION: "{{matrix.BWC_VERSION}}"
@@ -162,7 +156,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: third-party / azure
command: |
export azure_storage_container=elasticsearch-ci-thirdparty
@@ -177,7 +170,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: third-party / gcs
command: |
export google_storage_bucket=elasticsearch-ci-thirdparty
@@ -192,7 +184,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: third-party / geoip
command: |
.ci/scripts/run-gradle.sh :modules:ingest-geoip:internalClusterTest -Dtests.jvm.argline="-Dgeoip_use_service=true"
@@ -202,7 +193,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: third-party / s3
command: |
export amazon_s3_bucket=elasticsearch-ci.us-west-2
@@ -217,7 +207,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: Upload Snyk Dependency Graph
command: .ci/scripts/run-gradle.sh uploadSnykDependencyGraph -PsnykTargetReference=$BUILDKITE_BRANCH
env:
@@ -228,8 +217,7 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- if: build.branch == "main" || build.branch == "7.17"
+ if: build.branch == "main" || build.branch == "8.x" || build.branch == "7.17"
- label: check-branch-consistency
command: .ci/scripts/run-gradle.sh branchConsistency
timeout_in_minutes: 15
@@ -237,7 +225,6 @@ steps:
provider: gcp
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-2
- diskSizeGb: 250
- label: check-branch-protection-rules
command: .buildkite/scripts/branch-protection.sh
timeout_in_minutes: 5
diff --git a/.buildkite/pipelines/periodic.yml b/.buildkite/pipelines/periodic.yml
index 06e7ffbc8fb1c..f7796f51d624b 100644
--- a/.buildkite/pipelines/periodic.yml
+++ b/.buildkite/pipelines/periodic.yml
@@ -11,7 +11,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.0.1
retry:
@@ -31,7 +30,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.1.1
retry:
@@ -51,7 +49,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.2.1
retry:
@@ -71,7 +68,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.3.2
retry:
@@ -91,7 +87,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.4.2
retry:
@@ -111,7 +106,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.5.2
retry:
@@ -131,7 +125,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.6.2
retry:
@@ -151,7 +144,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.7.1
retry:
@@ -171,7 +163,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.8.1
retry:
@@ -191,7 +182,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.9.3
retry:
@@ -211,7 +201,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.10.2
retry:
@@ -231,7 +220,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.11.2
retry:
@@ -251,7 +239,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.12.1
retry:
@@ -271,7 +258,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.13.4
retry:
@@ -291,7 +277,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.14.2
retry:
@@ -311,7 +296,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.15.2
retry:
@@ -331,7 +315,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 7.16.3
retry:
@@ -342,8 +325,8 @@ steps:
- signal_reason: agent_stop
limit: 3
- - label: 7.17.23 / bwc
- command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.17.23#bwcTest
+ - label: 7.17.25 / bwc
+ command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v7.17.25#bwcTest
timeout_in_minutes: 300
agents:
provider: gcp
@@ -351,9 +334,8 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
- BWC_VERSION: 7.17.23
+ BWC_VERSION: 7.17.25
retry:
automatic:
- exit_status: "-1"
@@ -371,7 +353,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.0.1
retry:
@@ -391,7 +372,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.1.3
retry:
@@ -411,7 +391,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.2.3
retry:
@@ -431,7 +410,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.3.3
retry:
@@ -451,7 +429,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.4.3
retry:
@@ -471,7 +448,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.5.3
retry:
@@ -491,7 +467,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.6.2
retry:
@@ -511,7 +486,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.7.1
retry:
@@ -531,7 +505,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.8.2
retry:
@@ -551,7 +524,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.9.2
retry:
@@ -571,7 +543,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.10.4
retry:
@@ -591,7 +562,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.11.4
retry:
@@ -611,7 +581,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.12.2
retry:
@@ -631,7 +600,6 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
BWC_VERSION: 8.13.4
retry:
@@ -642,8 +610,8 @@ steps:
- signal_reason: agent_stop
limit: 3
- - label: 8.14.2 / bwc
- command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v8.14.2#bwcTest
+ - label: 8.14.3 / bwc
+ command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v8.14.3#bwcTest
timeout_in_minutes: 300
agents:
provider: gcp
@@ -651,9 +619,8 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
- BWC_VERSION: 8.14.2
+ BWC_VERSION: 8.14.3
retry:
automatic:
- exit_status: "-1"
@@ -662,8 +629,8 @@ steps:
- signal_reason: agent_stop
limit: 3
- - label: 8.15.0 / bwc
- command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v8.15.0#bwcTest
+ - label: 8.15.3 / bwc
+ command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v8.15.3#bwcTest
timeout_in_minutes: 300
agents:
provider: gcp
@@ -671,9 +638,8 @@ steps:
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
- diskSizeGb: 250
env:
- BWC_VERSION: 8.15.0
+ BWC_VERSION: 8.15.3
retry:
automatic:
- exit_status: "-1"
@@ -706,7 +672,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: example-plugins
command: |-
cd $$WORKSPACE/plugins/examples
@@ -718,7 +683,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- group: java-fips-matrix
steps:
- label: "{{matrix.ES_RUNTIME_JAVA}} / {{matrix.GRADLE_TASK}} / java-fips-matrix"
@@ -740,7 +704,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
ES_RUNTIME_JAVA: "{{matrix.ES_RUNTIME_JAVA}}"
GRADLE_TASK: "{{matrix.GRADLE_TASK}}"
@@ -751,13 +714,12 @@ steps:
setup:
ES_RUNTIME_JAVA:
- openjdk17
- BWC_VERSION: ["7.17.23", "8.14.2", "8.15.0"]
+ BWC_VERSION: ["7.17.25", "8.15.3"]
agents:
provider: gcp
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
ES_RUNTIME_JAVA: "{{matrix.ES_RUNTIME_JAVA}}"
BWC_VERSION: "{{matrix.BWC_VERSION}}"
@@ -786,7 +748,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
ES_RUNTIME_JAVA: "{{matrix.ES_RUNTIME_JAVA}}"
GRADLE_TASK: "{{matrix.GRADLE_TASK}}"
@@ -801,13 +762,12 @@ steps:
- openjdk21
- openjdk22
- openjdk23
- BWC_VERSION: ["7.17.23", "8.14.2", "8.15.0"]
+ BWC_VERSION: ["7.17.25", "8.15.3"]
agents:
provider: gcp
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
ES_RUNTIME_JAVA: "{{matrix.ES_RUNTIME_JAVA}}"
BWC_VERSION: "{{matrix.BWC_VERSION}}"
@@ -843,7 +803,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: third-party / azure
command: |
export azure_storage_container=elasticsearch-ci-thirdparty
@@ -858,7 +817,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: third-party / gcs
command: |
export google_storage_bucket=elasticsearch-ci-thirdparty
@@ -873,7 +831,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: third-party / geoip
command: |
.ci/scripts/run-gradle.sh :modules:ingest-geoip:internalClusterTest -Dtests.jvm.argline="-Dgeoip_use_service=true"
@@ -883,7 +840,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: third-party / s3
command: |
export amazon_s3_bucket=elasticsearch-ci.us-west-2
@@ -898,7 +854,6 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- label: Upload Snyk Dependency Graph
command: .ci/scripts/run-gradle.sh uploadSnykDependencyGraph -PsnykTargetReference=$BUILDKITE_BRANCH
env:
@@ -909,8 +864,7 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-8
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
- if: build.branch == "main" || build.branch == "7.17"
+ if: build.branch == "main" || build.branch == "8.x" || build.branch == "7.17"
- label: check-branch-consistency
command: .ci/scripts/run-gradle.sh branchConsistency
timeout_in_minutes: 15
@@ -918,7 +872,6 @@ steps:
provider: gcp
image: family/elasticsearch-ubuntu-2004
machineType: n2-standard-2
- diskSizeGb: 250
- label: check-branch-protection-rules
command: .buildkite/scripts/branch-protection.sh
timeout_in_minutes: 5
diff --git a/.buildkite/pipelines/pull-request/build-benchmark.yml b/.buildkite/pipelines/pull-request/build-benchmark.yml
index 96330bee03638..8d3215b8393ce 100644
--- a/.buildkite/pipelines/pull-request/build-benchmark.yml
+++ b/.buildkite/pipelines/pull-request/build-benchmark.yml
@@ -22,4 +22,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/bwc-snapshots-windows.yml b/.buildkite/pipelines/pull-request/bwc-snapshots-windows.yml
deleted file mode 100644
index d37bdf380f926..0000000000000
--- a/.buildkite/pipelines/pull-request/bwc-snapshots-windows.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-config:
- allow-labels: test-windows
-steps:
- - group: bwc-snapshots-windows
- steps:
- - label: "{{matrix.BWC_VERSION}} / bwc-snapshots-windows"
- key: "bwc-snapshots-windows"
- command: .\.buildkite\scripts\run-script.ps1 bash .buildkite/scripts/windows-run-gradle.sh
- env:
- GRADLE_TASK: "v{{matrix.BWC_VERSION}}#bwcTest"
- timeout_in_minutes: 300
- matrix:
- setup:
- BWC_VERSION: $SNAPSHOT_BWC_VERSIONS
- agents:
- provider: gcp
- image: family/elasticsearch-windows-2022
- machineType: custom-32-98304
- diskType: pd-ssd
- diskSizeGb: 350
diff --git a/.buildkite/pipelines/pull-request/bwc-snapshots.yml b/.buildkite/pipelines/pull-request/bwc-snapshots.yml
index 8f59e593b286f..5a9fc2d938ac0 100644
--- a/.buildkite/pipelines/pull-request/bwc-snapshots.yml
+++ b/.buildkite/pipelines/pull-request/bwc-snapshots.yml
@@ -18,4 +18,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/cloud-deploy.yml b/.buildkite/pipelines/pull-request/cloud-deploy.yml
index 2932f874c5cf8..ce8e8206d51ff 100644
--- a/.buildkite/pipelines/pull-request/cloud-deploy.yml
+++ b/.buildkite/pipelines/pull-request/cloud-deploy.yml
@@ -11,4 +11,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/docs-check.yml b/.buildkite/pipelines/pull-request/docs-check.yml
index 3bf1e43697a7c..2201eb2d1e4ea 100644
--- a/.buildkite/pipelines/pull-request/docs-check.yml
+++ b/.buildkite/pipelines/pull-request/docs-check.yml
@@ -12,4 +12,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/eql-correctness.yml b/.buildkite/pipelines/pull-request/eql-correctness.yml
index d85827d10e886..8f7ca6942c0e9 100644
--- a/.buildkite/pipelines/pull-request/eql-correctness.yml
+++ b/.buildkite/pipelines/pull-request/eql-correctness.yml
@@ -7,4 +7,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/example-plugins.yml b/.buildkite/pipelines/pull-request/example-plugins.yml
index fb4a17fb214cb..18d0de6594980 100644
--- a/.buildkite/pipelines/pull-request/example-plugins.yml
+++ b/.buildkite/pipelines/pull-request/example-plugins.yml
@@ -16,4 +16,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/full-bwc.yml b/.buildkite/pipelines/pull-request/full-bwc.yml
index c404069bd0e60..d3fa8eccaf7d9 100644
--- a/.buildkite/pipelines/pull-request/full-bwc.yml
+++ b/.buildkite/pipelines/pull-request/full-bwc.yml
@@ -13,4 +13,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/packaging-tests-unix.yml b/.buildkite/pipelines/pull-request/packaging-tests-unix.yml
index d5c937aa4b5a2..e94baac8d9448 100644
--- a/.buildkite/pipelines/pull-request/packaging-tests-unix.yml
+++ b/.buildkite/pipelines/pull-request/packaging-tests-unix.yml
@@ -10,8 +10,6 @@ steps:
matrix:
setup:
image:
- - centos-7
- - debian-10
- debian-11
- opensuse-leap-15
- oraclelinux-7
@@ -39,8 +37,6 @@ steps:
matrix:
setup:
image:
- - centos-7
- - debian-10
- debian-11
- opensuse-leap-15
- oraclelinux-7
@@ -68,8 +64,6 @@ steps:
matrix:
setup:
image:
- - centos-7
- - debian-10
- debian-11
- opensuse-leap-15
- oraclelinux-7
diff --git a/.buildkite/pipelines/pull-request/packaging-upgrade-tests.yml b/.buildkite/pipelines/pull-request/packaging-upgrade-tests.yml
index 970dafbb28647..c62cf23310422 100644
--- a/.buildkite/pipelines/pull-request/packaging-upgrade-tests.yml
+++ b/.buildkite/pipelines/pull-request/packaging-upgrade-tests.yml
@@ -18,6 +18,5 @@ steps:
image: family/elasticsearch-{{matrix.image}}
machineType: custom-16-32768
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
env:
BWC_VERSION: $BWC_VERSION
diff --git a/.buildkite/pipelines/pull-request/part-1-fips.yml b/.buildkite/pipelines/pull-request/part-1-fips.yml
index 99544e7f5a80b..42f930c1bde9a 100644
--- a/.buildkite/pipelines/pull-request/part-1-fips.yml
+++ b/.buildkite/pipelines/pull-request/part-1-fips.yml
@@ -9,4 +9,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/part-1.yml b/.buildkite/pipelines/pull-request/part-1.yml
index b4b9d5469ec41..3d467c6c41e43 100644
--- a/.buildkite/pipelines/pull-request/part-1.yml
+++ b/.buildkite/pipelines/pull-request/part-1.yml
@@ -7,4 +7,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/part-2-fips.yml b/.buildkite/pipelines/pull-request/part-2-fips.yml
index 36a9801547d78..6a3647ceb50ae 100644
--- a/.buildkite/pipelines/pull-request/part-2-fips.yml
+++ b/.buildkite/pipelines/pull-request/part-2-fips.yml
@@ -9,4 +9,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/part-2.yml b/.buildkite/pipelines/pull-request/part-2.yml
index 12bd78cf895fd..43de69bbcd945 100644
--- a/.buildkite/pipelines/pull-request/part-2.yml
+++ b/.buildkite/pipelines/pull-request/part-2.yml
@@ -7,4 +7,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/part-3-fips.yml b/.buildkite/pipelines/pull-request/part-3-fips.yml
index 4a2df3026e782..cee3ea153acb9 100644
--- a/.buildkite/pipelines/pull-request/part-3-fips.yml
+++ b/.buildkite/pipelines/pull-request/part-3-fips.yml
@@ -9,4 +9,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/part-3.yml b/.buildkite/pipelines/pull-request/part-3.yml
index 6991c05da85c6..12abae7634822 100644
--- a/.buildkite/pipelines/pull-request/part-3.yml
+++ b/.buildkite/pipelines/pull-request/part-3.yml
@@ -9,4 +9,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/part-4-fips.yml b/.buildkite/pipelines/pull-request/part-4-fips.yml
index 734f8af816895..11a50456ca4c0 100644
--- a/.buildkite/pipelines/pull-request/part-4-fips.yml
+++ b/.buildkite/pipelines/pull-request/part-4-fips.yml
@@ -9,4 +9,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/part-4.yml b/.buildkite/pipelines/pull-request/part-4.yml
index 59f2f2898a590..af11f08953d07 100644
--- a/.buildkite/pipelines/pull-request/part-4.yml
+++ b/.buildkite/pipelines/pull-request/part-4.yml
@@ -9,4 +9,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/part-5-fips.yml b/.buildkite/pipelines/pull-request/part-5-fips.yml
index 801b812bb99c0..4e193ac751086 100644
--- a/.buildkite/pipelines/pull-request/part-5-fips.yml
+++ b/.buildkite/pipelines/pull-request/part-5-fips.yml
@@ -9,4 +9,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/part-5.yml b/.buildkite/pipelines/pull-request/part-5.yml
index c7e50631d1cdd..306ce7533d0ed 100644
--- a/.buildkite/pipelines/pull-request/part-5.yml
+++ b/.buildkite/pipelines/pull-request/part-5.yml
@@ -9,4 +9,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/precommit.yml b/.buildkite/pipelines/pull-request/precommit.yml
index 8d1458b1b60c8..f6548dfeed9b2 100644
--- a/.buildkite/pipelines/pull-request/precommit.yml
+++ b/.buildkite/pipelines/pull-request/precommit.yml
@@ -10,4 +10,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/rest-compatibility.yml b/.buildkite/pipelines/pull-request/rest-compatibility.yml
index 16144a2a0780f..a69810e23d960 100644
--- a/.buildkite/pipelines/pull-request/rest-compatibility.yml
+++ b/.buildkite/pipelines/pull-request/rest-compatibility.yml
@@ -9,4 +9,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.buildkite/pipelines/pull-request/validate-changelogs.yml b/.buildkite/pipelines/pull-request/validate-changelogs.yml
index 296ef11637118..9451d321a9b39 100644
--- a/.buildkite/pipelines/pull-request/validate-changelogs.yml
+++ b/.buildkite/pipelines/pull-request/validate-changelogs.yml
@@ -7,4 +7,3 @@ steps:
image: family/elasticsearch-ubuntu-2004
machineType: custom-32-98304
buildDirectory: /dev/shm/bk
- diskSizeGb: 250
diff --git a/.ci/bwcVersions b/.ci/bwcVersions
index bce556e9fc352..72da5539e7dd6 100644
--- a/.ci/bwcVersions
+++ b/.ci/bwcVersions
@@ -16,7 +16,7 @@ BWC_VERSION:
- "7.14.2"
- "7.15.2"
- "7.16.3"
- - "7.17.23"
+ - "7.17.25"
- "8.0.1"
- "8.1.3"
- "8.2.3"
@@ -31,5 +31,5 @@ BWC_VERSION:
- "8.11.4"
- "8.12.2"
- "8.13.4"
- - "8.14.2"
- - "8.15.0"
+ - "8.14.3"
+ - "8.15.3"
diff --git a/.ci/snapshotBwcVersions b/.ci/snapshotBwcVersions
index 5fc4b6c072899..e7779e3fc1ce8 100644
--- a/.ci/snapshotBwcVersions
+++ b/.ci/snapshotBwcVersions
@@ -1,4 +1,3 @@
BWC_VERSION:
- - "7.17.23"
- - "8.14.2"
- - "8.15.0"
+ - "7.17.25"
+ - "8.15.3"
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
deleted file mode 100644
index 0f7e3073ed022..0000000000000
--- a/.github/CODEOWNERS
+++ /dev/null
@@ -1,68 +0,0 @@
-# GitHub CODEOWNERS definition
-# Identify which groups will be pinged by changes to different parts of the codebase.
-# For more info, see https://help.github.com/articles/about-codeowners/
-
-# Stack Monitoring index templates
-x-pack/plugin/core/template-resources/src/main/resources/monitoring-alerts-7.json @elastic/stack-monitoring
-x-pack/plugin/core/template-resources/src/main/resources/monitoring-beats-mb.json @elastic/stack-monitoring
-x-pack/plugin/core/template-resources/src/main/resources/monitoring-beats.json @elastic/stack-monitoring
-x-pack/plugin/core/template-resources/src/main/resources/monitoring-ent-search-mb.json @elastic/stack-monitoring
-x-pack/plugin/core/template-resources/src/main/resources/monitoring-es-mb.json @elastic/stack-monitoring
-x-pack/plugin/core/template-resources/src/main/resources/monitoring-es.json @elastic/stack-monitoring
-x-pack/plugin/core/template-resources/src/main/resources/monitoring-kibana-mb.json @elastic/stack-monitoring
-x-pack/plugin/core/template-resources/src/main/resources/monitoring-kibana.json @elastic/stack-monitoring
-x-pack/plugin/core/template-resources/src/main/resources/monitoring-logstash-mb.json @elastic/stack-monitoring
-x-pack/plugin/core/template-resources/src/main/resources/monitoring-logstash.json @elastic/stack-monitoring
-x-pack/plugin/core/template-resources/src/main/resources/monitoring-mb-ilm-policy.json @elastic/stack-monitoring
-x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/MonitoringTemplateRegistry.java @elastic/stack-monitoring
-
-# Fleet
-x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet @elastic/fleet
-x-pack/plugin/core/src/main/resources/fleet-* @elastic/fleet
-
-# Logstash
-libs/logstash-bridge @elastic/logstash
-
-# Kibana Security
-x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/store/KibanaOwnedReservedRoleDescriptors.java @elastic/kibana-security
-
-# APM Data index templates, etc.
-x-pack/plugin/apm-data/src/main/resources @elastic/apm-server
-x-pack/plugin/apm-data/src/yamlRestTest/resources @elastic/apm-server
-
-# Delivery
-gradle @elastic/es-delivery
-build-conventions @elastic/es-delivery
-build-tools @elastic/es-delivery
-build-tools-internal @elastic/es-delivery
-*.gradle @elastic/es-delivery
-.buildkite @elastic/es-delivery
-.ci @elastic/es-delivery
-.idea @elastic/es-delivery
-distribution/src @elastic/es-delivery
-distribution/packages/src @elastic/es-delivery
-distribution/docker/src @elastic/es-delivery
-
-# Core/Infra
-distribution/tools @elastic/es-core-infra
-libs/core @elastic/es-core-infra
-libs/logging @elastic/es-core-infra
-libs/native @elastic/es-core-infra
-libs/plugin-analysis-api @elastic/es-core-infra
-libs/plugin-api @elastic/es-core-infra
-libs/plugin-classloader @elastic/es-core-infra
-libs/plugin-scanner @elastic/es-core-infra
-libs/x-content @elastic/es-core-infra
-modules/lang-expression @elastic/es-core-infra
-modules/lang-mustache @elastic/es-core-infra
-modules/lang-painless @elastic/es-core-infra
-modules/rest-root @elastic/es-core-infra
-modules/systemd @elastic/es-core-infra
-server/src/main/java/org/elasticsearch/bootstrap @elastic/es-core-infra
-server/src/main/java/org/elasticsearch/node @elastic/es-core-infra
-server/src/main/java/org/elasticsearch/plugins @elastic/es-core-infra
-server/src/main/java/org/elasticsearch/threadpool @elastic/es-core-infra
-
-# Security
-x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/privilege @elastic/es-security
-x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/store/ReservedRolesStore.java @elastic/es-security
diff --git a/README.asciidoc b/README.asciidoc
index dc27735d3c015..8d3c96c659896 100644
--- a/README.asciidoc
+++ b/README.asciidoc
@@ -1,6 +1,6 @@
= Elasticsearch
-Elasticsearch is a distributed search and analytics engine optimized for speed and relevance on production-scale workloads. Elasticsearch is the foundation of Elastic's open Stack platform. Search in near real-time over massive datasets, perform vector searches, integrate with generative AI applications, and much more.
+Elasticsearch is a distributed search and analytics engine, scalable data store and vector database optimized for speed and relevance on production-scale workloads. Elasticsearch is the foundation of Elastic's open Stack platform. Search in near real-time over massive datasets, perform vector searches, integrate with generative AI applications, and much more.
Use cases enabled by Elasticsearch include:
@@ -33,76 +33,124 @@ https://www.elastic.co/downloads/elasticsearch[elastic.co/downloads/elasticsearc
=== Run Elasticsearch locally
////
-IMPORTANT: This content is replicated in the Elasticsearch guide.
-If you make changes, you must also update setup/set-up-local-dev-deployment.asciidoc.
-////
+IMPORTANT: This content is replicated in the Elasticsearch repo. See `run-elasticsearch-locally.asciidoc`.
+Ensure both files are in sync.
-To try out Elasticsearch on your own machine, we recommend using Docker
-and running both Elasticsearch and Kibana.
-Docker images are available from the https://www.docker.elastic.co[Elastic Docker registry].
+https://github.com/elastic/start-local is the source of truth.
+////
-NOTE: Starting in Elasticsearch 8.0, security is enabled by default.
-The first time you start Elasticsearch, TLS encryption is configured automatically,
-a password is generated for the `elastic` user,
-and a Kibana enrollment token is created so you can connect Kibana to your secured cluster.
+[WARNING]
+====
+DO NOT USE THESE INSTRUCTIONS FOR PRODUCTION DEPLOYMENTS.
-For other installation options, see the
-https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html[Elasticsearch installation documentation].
+This setup is intended for local development and testing only.
+====
-**Start Elasticsearch**
+Quickly set up Elasticsearch and Kibana in Docker for local development or testing, using the https://github.com/elastic/start-local?tab=readme-ov-file#-try-elasticsearch-and-kibana-locally[`start-local` script].
-. Install and start https://www.docker.com/products/docker-desktop[Docker
-Desktop]. Go to **Preferences > Resources > Advanced** and set Memory to at least 4GB.
+ℹ️ For more detailed information about the `start-local` setup, refer to the https://github.com/elastic/start-local[README on GitHub].
-. Start an Elasticsearch container:
-+
-----
-docker network create elastic
-docker pull docker.elastic.co/elasticsearch/elasticsearch:{version} <1>
-docker run --name elasticsearch --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -t docker.elastic.co/elasticsearch/elasticsearch:{version}
-----
-<1> Replace {version} with the version of Elasticsearch you want to run.
-+
-When you start Elasticsearch for the first time, the generated `elastic` user password and
-Kibana enrollment token are output to the terminal.
-+
-NOTE: You might need to scroll back a bit in the terminal to view the password
-and enrollment token.
+==== Prerequisites
+
+- If you don't have Docker installed, https://www.docker.com/products/docker-desktop[download and install Docker Desktop] for your operating system.
+- If you're using Microsoft Windows, then install https://learn.microsoft.com/en-us/windows/wsl/install[Windows Subsystem for Linux (WSL)].
-. Copy the generated password and enrollment token and save them in a secure
-location. These values are shown only when you start Elasticsearch for the first time.
-You'll use these to enroll Kibana with your Elasticsearch cluster and log in.
+==== Trial license
-**Start Kibana**
+This setup comes with a one-month trial of the Elastic *Platinum* license.
+After the trial period, the license reverts to *Free and open - Basic*.
+Refer to https://www.elastic.co/subscriptions[Elastic subscriptions] for more information.
-Kibana enables you to easily send requests to Elasticsearch and analyze, visualize, and manage data interactively.
+==== Run `start-local`
-. In a new terminal session, start Kibana and connect it to your Elasticsearch container:
-+
+To set up Elasticsearch and Kibana locally, run the `start-local` script:
+
+[source,sh]
----
-docker pull docker.elastic.co/kibana/kibana:{version} <1>
-docker run --name kibana --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:{version}
+curl -fsSL https://elastic.co/start-local | sh
----
-<1> Replace {version} with the version of Kibana you want to run.
-+
-When you start Kibana, a unique URL is output to your terminal.
+// NOTCONSOLE
+
+This script creates an `elastic-start-local` folder containing configuration files and starts both Elasticsearch and Kibana using Docker.
+
+After running the script, you can access Elastic services at the following endpoints:
+
+* *Elasticsearch*: http://localhost:9200
+* *Kibana*: http://localhost:5601
-. To access Kibana, open the generated URL in your browser.
+The script generates a random password for the `elastic` user, which is displayed at the end of the installation and stored in the `.env` file.
- .. Paste the enrollment token that you copied when starting
- Elasticsearch and click the button to connect your Kibana instance with Elasticsearch.
+[CAUTION]
+====
+This setup is for local testing only. HTTPS is disabled, and Basic authentication is used for Elasticsearch. For security, Elasticsearch and Kibana are accessible only through `localhost`.
+====
- .. Log in to Kibana as the `elastic` user with the password that was generated
- when you started Elasticsearch.
+==== API access
-**Send requests to Elasticsearch**
+An API key for Elasticsearch is generated and stored in the `.env` file as `ES_LOCAL_API_KEY`.
+Use this key to connect to Elasticsearch with a https://www.elastic.co/guide/en/elasticsearch/client/index.html[programming language client] or the https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html[REST API].
+
+From the `elastic-start-local` folder, check the connection to Elasticsearch using `curl`:
+
+[source,sh]
+----
+source .env
+curl $ES_LOCAL_URL -H "Authorization: ApiKey ${ES_LOCAL_API_KEY}"
+----
+// NOTCONSOLE
+
+=== Send requests to Elasticsearch
You send data and other requests to Elasticsearch through REST APIs.
You can interact with Elasticsearch using any client that sends HTTP requests,
such as the https://www.elastic.co/guide/en/elasticsearch/client/index.html[Elasticsearch
language clients] and https://curl.se[curl].
+
+==== Using curl
+
+Here's an example curl command to create a new Elasticsearch index, using basic auth:
+
+[source,sh]
+----
+curl -u elastic:$ELASTIC_PASSWORD \
+ -X PUT \
+ http://localhost:9200/my-new-index \
+ -H 'Content-Type: application/json'
+----
+// NOTCONSOLE
+
+==== Using a language client
+
+To connect to your local dev Elasticsearch cluster with a language client, you can use basic authentication with the `elastic` username and the password you set in the environment variable.
+
+You'll use the following connection details:
+
+* **Elasticsearch endpoint**: `http://localhost:9200`
+* **Username**: `elastic`
+* **Password**: `$ELASTIC_PASSWORD` (Value you set in the environment variable)
+
+For example, to connect with the Python `elasticsearch` client:
+
+[source,python]
+----
+import os
+from elasticsearch import Elasticsearch
+
+username = 'elastic'
+password = os.getenv('ELASTIC_PASSWORD') # Value you set in the environment variable
+
+client = Elasticsearch(
+ "http://localhost:9200",
+ basic_auth=(username, password)
+)
+
+print(client.info())
+----
+
+==== Using the Dev Tools Console
+
Kibana's developer console provides an easy way to experiment and test requests.
-To access the console, go to **Management > Dev Tools**.
+To access the console, open Kibana, then go to **Management** > **Dev Tools**.
**Add data**
diff --git a/build-tools-internal/gradle/wrapper/gradle-wrapper.properties b/build-tools-internal/gradle/wrapper/gradle-wrapper.properties
index 515ab9d5f1822..e955ee28dd349 100644
--- a/build-tools-internal/gradle/wrapper/gradle-wrapper.properties
+++ b/build-tools-internal/gradle/wrapper/gradle-wrapper.properties
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionSha256Sum=f8b4f4772d302c8ff580bc40d0f56e715de69b163546944f787c87abf209c961
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip
+distributionSha256Sum=fdfca5dbc2834f0ece5020465737538e5ba679deeff5ab6c09621d67f8bb1a15
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy
index b7c4908e39b62..737c448f23be6 100644
--- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy
+++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy
@@ -55,8 +55,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe
def result = gradleRunner("yamlRestTestV${compatibleVersion}CompatTest", '--stacktrace').build()
then:
- // we set the task to be skipped if there are no matching tests in the compatibility test sourceSet
- result.task(":yamlRestTestV${compatibleVersion}CompatTest").outcome == TaskOutcome.SKIPPED
+ result.task(":yamlRestTestV${compatibleVersion}CompatTest").outcome == TaskOutcome.NO_SOURCE
result.task(':copyRestCompatApiTask').outcome == TaskOutcome.NO_SOURCE
result.task(':copyRestCompatTestTask').outcome == TaskOutcome.NO_SOURCE
result.task(transformTask).outcome == TaskOutcome.NO_SOURCE
@@ -165,7 +164,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe
then:
result.task(':check').outcome == TaskOutcome.UP_TO_DATE
result.task(':checkRestCompat').outcome == TaskOutcome.UP_TO_DATE
- result.task(":yamlRestTestV${compatibleVersion}CompatTest").outcome == TaskOutcome.SKIPPED
+ result.task(":yamlRestTestV${compatibleVersion}CompatTest").outcome == TaskOutcome.NO_SOURCE
result.task(':copyRestCompatApiTask').outcome == TaskOutcome.NO_SOURCE
result.task(':copyRestCompatTestTask').outcome == TaskOutcome.NO_SOURCE
result.task(transformTask).outcome == TaskOutcome.NO_SOURCE
diff --git a/build-tools-internal/src/main/groovy/elasticsearch.ide.gradle b/build-tools-internal/src/main/groovy/elasticsearch.ide.gradle
index 6cb22dad9bc79..82c511818d1ff 100644
--- a/build-tools-internal/src/main/groovy/elasticsearch.ide.gradle
+++ b/build-tools-internal/src/main/groovy/elasticsearch.ide.gradle
@@ -167,9 +167,10 @@ if (providers.systemProperty('idea.active').getOrNull() == 'true') {
vmParameters = [
'-ea',
'-Djava.security.manager=allow',
- '-Djava.locale.providers=SPI,COMPAT',
+ '-Djava.locale.providers=SPI,CLDR',
'-Djava.library.path=' + testLibraryPath,
'-Djna.library.path=' + testLibraryPath,
+ '-Dtests.testfeatures.enabled=true',
// TODO: only open these for mockito when it is modularized
'--add-opens=java.base/java.security.cert=ALL-UNNAMED',
'--add-opens=java.base/java.nio.channels=ALL-UNNAMED',
diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcSetupExtension.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcSetupExtension.java
index 7010ed92d4c57..4112d96c7296b 100644
--- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcSetupExtension.java
+++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcSetupExtension.java
@@ -26,7 +26,6 @@
import org.gradle.api.tasks.TaskProvider;
import org.gradle.jvm.toolchain.JavaLanguageVersion;
import org.gradle.jvm.toolchain.JavaToolchainService;
-import org.gradle.jvm.toolchain.JvmVendorSpec;
import java.io.File;
import java.io.IOException;
@@ -161,10 +160,8 @@ private static TaskProvider createRunBwcGradleTask(
/** A convenience method for getting java home for a version of java and requiring that version for the given task to execute */
private static Provider getJavaHome(ObjectFactory objectFactory, JavaToolchainService toolChainService, final int version) {
Property value = objectFactory.property(JavaLanguageVersion.class).value(JavaLanguageVersion.of(version));
- return toolChainService.launcherFor(javaToolchainSpec -> {
- javaToolchainSpec.getLanguageVersion().value(value);
- javaToolchainSpec.getVendor().set(JvmVendorSpec.ORACLE);
- }).map(launcher -> launcher.getMetadata().getInstallationPath().getAsFile().getAbsolutePath());
+ return toolChainService.launcherFor(javaToolchainSpec -> { javaToolchainSpec.getLanguageVersion().value(value); })
+ .map(launcher -> launcher.getMetadata().getInstallationPath().getAsFile().getAbsolutePath());
}
private static String readFromFile(File file) {
diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchBuildCompletePlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchBuildCompletePlugin.java
index 4f9498c8f33a6..a0b4a3d8d37c1 100644
--- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchBuildCompletePlugin.java
+++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchBuildCompletePlugin.java
@@ -8,7 +8,7 @@
package org.elasticsearch.gradle.internal;
-import com.gradle.scan.plugin.BuildScanExtension;
+import com.gradle.develocity.agent.gradle.DevelocityConfiguration;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
@@ -64,7 +64,7 @@ public void apply(Project target) {
File targetFile = target.file("build/" + buildNumber + ".tar.bz2");
File projectDir = target.getProjectDir();
File gradleWorkersDir = new File(target.getGradle().getGradleUserHomeDir(), "workers/");
- BuildScanExtension extension = target.getExtensions().getByType(BuildScanExtension.class);
+ DevelocityConfiguration extension = target.getExtensions().getByType(DevelocityConfiguration.class);
File daemonsLogDir = new File(target.getGradle().getGradleUserHomeDir(), "daemon/" + target.getGradle().getGradleVersion());
getFlowScope().always(BuildFinishedFlowAction.class, spec -> {
@@ -125,7 +125,7 @@ interface Parameters extends FlowParameters {
ListProperty getFilteredFiles();
@Input
- Property getBuildScan();
+ Property getBuildScan();
}
@@ -152,7 +152,13 @@ public void execute(BuildFinishedFlowAction.Parameters parameters) throws FileNo
// So, if you change this such that the artifact will have a slash/directory in it, you'll need to update the logic
// below as well
pb.directory(uploadFileDir);
- pb.start().waitFor();
+ try {
+ // we are very generious here, as the upload can take
+ // a long time depending on its size
+ pb.start().waitFor(30, java.util.concurrent.TimeUnit.MINUTES);
+ } catch (InterruptedException e) {
+ System.out.println("Failed to upload buildkite artifact " + e.getMessage());
+ }
System.out.println("Generating buildscan link for artifact...");
@@ -198,7 +204,7 @@ public void execute(BuildFinishedFlowAction.Parameters parameters) throws FileNo
+ System.getenv("BUILDKITE_JOB_ID")
+ "/artifacts/"
+ artifactUuid;
- parameters.getBuildScan().get().link("Artifact Upload", targetLink);
+ parameters.getBuildScan().get().getBuildScan().link("Artifact Upload", targetLink);
}
} catch (Exception e) {
System.out.println("Failed to upload buildkite artifact " + e.getMessage());
diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchTestBasePlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchTestBasePlugin.java
index 689c8ddecb057..d823176fc5ae9 100644
--- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchTestBasePlugin.java
+++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchTestBasePlugin.java
@@ -92,7 +92,7 @@ public void execute(Task t) {
mkdirs(test.getWorkingDir().toPath().resolve("temp").toFile());
// TODO remove once jvm.options are added to test system properties
- test.systemProperty("java.locale.providers", "SPI,COMPAT");
+ test.systemProperty("java.locale.providers", "SPI,CLDR");
}
});
test.getJvmArgumentProviders().add(nonInputProperties);
@@ -107,6 +107,7 @@ public void execute(Task t) {
"-Xmx" + System.getProperty("tests.heap.size", "512m"),
"-Xms" + System.getProperty("tests.heap.size", "512m"),
"-Djava.security.manager=allow",
+ "-Dtests.testfeatures.enabled=true",
"--add-opens=java.base/java.util=ALL-UNNAMED",
// TODO: only open these for mockito when it is modularized
"--add-opens=java.base/java.security.cert=ALL-UNNAMED",
@@ -183,8 +184,8 @@ public void execute(Task t) {
});
if (OS.current().equals(OS.WINDOWS) && System.getProperty("tests.timeoutSuite") == null) {
- // override the suite timeout to 30 mins for windows, because it has the most inefficient filesystem known to man
- test.systemProperty("tests.timeoutSuite", "2400000!");
+ // override the suite timeout to 60 mins for windows, because it has the most inefficient filesystem known to man
+ test.systemProperty("tests.timeoutSuite", "3600000!");
}
/*
diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/EmbeddedProviderExtension.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/EmbeddedProviderExtension.java
index e9e75a711a8ff..03b8f19d10b13 100644
--- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/EmbeddedProviderExtension.java
+++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/EmbeddedProviderExtension.java
@@ -43,17 +43,16 @@ void impl(String implName, Project implProject) {
});
String manifestTaskName = "generate" + capitalName + "ProviderManifest";
- Provider generatedResourcesDir = project.getLayout().getBuildDirectory().dir("generated-resources");
+ Provider generatedResourcesRoot = project.getLayout().getBuildDirectory().dir("generated-resources");
var generateProviderManifest = project.getTasks().register(manifestTaskName, GenerateProviderManifest.class);
generateProviderManifest.configure(t -> {
- t.getManifestFile().set(generatedResourcesDir.map(d -> d.file("LISTING.TXT")));
+ t.getManifestFile().set(generatedResourcesRoot.map(d -> d.dir(manifestTaskName).file("LISTING.TXT")));
t.getProviderImplClasspath().from(implConfig);
});
-
String implTaskName = "generate" + capitalName + "ProviderImpl";
var generateProviderImpl = project.getTasks().register(implTaskName, Sync.class);
generateProviderImpl.configure(t -> {
- t.into(generatedResourcesDir);
+ t.into(generatedResourcesRoot.map(d -> d.dir(implTaskName)));
t.into("IMPL-JARS/" + implName, spec -> {
spec.from(implConfig);
spec.from(generateProviderManifest);
diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/GlobalBuildInfoPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/GlobalBuildInfoPlugin.java
index 42834928bafed..e61bbefc9a973 100644
--- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/GlobalBuildInfoPlugin.java
+++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/GlobalBuildInfoPlugin.java
@@ -51,6 +51,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
+import java.util.Optional;
import java.util.Random;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@@ -97,24 +98,25 @@ public void apply(Project project) {
JavaVersion minimumCompilerVersion = JavaVersion.toVersion(getResourceContents("/minimumCompilerVersion"));
JavaVersion minimumRuntimeVersion = JavaVersion.toVersion(getResourceContents("/minimumRuntimeVersion"));
- File runtimeJavaHome = findRuntimeJavaHome();
- boolean isRuntimeJavaHomeSet = Jvm.current().getJavaHome().equals(runtimeJavaHome) == false;
+ Optional selectedRuntimeJavaHome = findRuntimeJavaHome();
+ File actualRuntimeJavaHome = selectedRuntimeJavaHome.orElse(Jvm.current().getJavaHome());
+ boolean isRuntimeJavaHomeSet = selectedRuntimeJavaHome.isPresent();
GitInfo gitInfo = GitInfo.gitInfo(project.getRootDir());
BuildParams.init(params -> {
params.reset();
- params.setRuntimeJavaHome(runtimeJavaHome);
+ params.setRuntimeJavaHome(actualRuntimeJavaHome);
params.setJavaToolChainSpec(resolveToolchainSpecFromEnv());
params.setRuntimeJavaVersion(
determineJavaVersion(
"runtime java.home",
- runtimeJavaHome,
+ actualRuntimeJavaHome,
isRuntimeJavaHomeSet ? minimumRuntimeVersion : Jvm.current().getJavaVersion()
)
);
params.setIsRuntimeJavaHomeSet(isRuntimeJavaHomeSet);
- JvmInstallationMetadata runtimeJdkMetaData = metadataDetector.getMetadata(getJavaInstallation(runtimeJavaHome));
+ JvmInstallationMetadata runtimeJdkMetaData = metadataDetector.getMetadata(getJavaInstallation(actualRuntimeJavaHome));
params.setRuntimeJavaDetails(formatJavaVendorDetails(runtimeJdkMetaData));
params.setJavaVersions(getAvailableJavaVersions());
params.setMinimumCompilerVersion(minimumCompilerVersion);
@@ -298,19 +300,19 @@ private static void assertMinimumCompilerVersion(JavaVersion minimumCompilerVers
}
}
- private File findRuntimeJavaHome() {
+ private Optional findRuntimeJavaHome() {
String runtimeJavaProperty = System.getProperty("runtime.java");
if (runtimeJavaProperty != null) {
- return resolveJavaHomeFromToolChainService(runtimeJavaProperty);
+ return Optional.of(resolveJavaHomeFromToolChainService(runtimeJavaProperty));
}
String env = System.getenv("RUNTIME_JAVA_HOME");
if (env != null) {
- return new File(env);
+ return Optional.of(new File(env));
}
// fall back to tool chain if set.
env = System.getenv("JAVA_TOOLCHAIN_HOME");
- return env == null ? Jvm.current().getJavaHome() : new File(env);
+ return env == null ? Optional.empty() : Optional.of(new File(env));
}
@NotNull
@@ -348,7 +350,6 @@ private File resolveJavaHomeFromToolChainService(String version) {
Property value = objectFactory.property(JavaLanguageVersion.class).value(JavaLanguageVersion.of(version));
Provider javaLauncherProvider = toolChainService.launcherFor(javaToolchainSpec -> {
javaToolchainSpec.getLanguageVersion().value(value);
- javaToolchainSpec.getVendor().set(JvmVendorSpec.ORACLE);
});
return javaLauncherProvider.get().getMetadata().getInstallationPath().getAsFile();
}
diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/precommit/ThirdPartyAuditTask.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/precommit/ThirdPartyAuditTask.java
index 4263ef2b1f76f..489cff65976b1 100644
--- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/precommit/ThirdPartyAuditTask.java
+++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/precommit/ThirdPartyAuditTask.java
@@ -193,6 +193,11 @@ public Set getMissingClassExcludes() {
@SkipWhenEmpty
public abstract ConfigurableFileCollection getJarsToScan();
+ @Classpath
+ public FileCollection getClasspath() {
+ return classpath;
+ }
+
@TaskAction
public void runThirdPartyAudit() throws IOException {
Set jars = getJarsToScan().getFiles();
diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java
index 08abb02ea831e..ec79fe20492e1 100644
--- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java
+++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java
@@ -52,7 +52,7 @@ public void apply(Project project) {
project.getTasks().register("extractCurrentVersions", ExtractCurrentVersionsTask.class);
project.getTasks().register("tagVersions", TagVersionsTask.class);
- project.getTasks().register("setCompatibleVersions", SetCompatibleVersionsTask.class);
+ project.getTasks().register("setCompatibleVersions", SetCompatibleVersionsTask.class, t -> t.setThisVersion(version));
final FileTree yamlFiles = projectDirectory.dir("docs/changelog")
.getAsFileTree()
diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/SetCompatibleVersionsTask.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/SetCompatibleVersionsTask.java
index 15e0a0cc345d5..17761e5183b31 100644
--- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/SetCompatibleVersionsTask.java
+++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/SetCompatibleVersionsTask.java
@@ -14,6 +14,7 @@
import com.github.javaparser.ast.expr.NameExpr;
import com.github.javaparser.printer.lexicalpreservation.LexicalPreservingPrinter;
+import org.elasticsearch.gradle.Version;
import org.gradle.api.tasks.TaskAction;
import org.gradle.api.tasks.options.Option;
import org.gradle.initialization.layout.BuildLayout;
@@ -28,6 +29,8 @@
public class SetCompatibleVersionsTask extends AbstractVersionsTask {
+ private Version thisVersion;
+ private Version releaseVersion;
private Map versionIds = Map.of();
@Inject
@@ -35,21 +38,35 @@ public SetCompatibleVersionsTask(BuildLayout layout) {
super(layout);
}
+ public void setThisVersion(Version version) {
+ thisVersion = version;
+ }
+
@Option(option = "version-id", description = "Version id used for the release. Of the form :.")
public void versionIds(List version) {
this.versionIds = splitVersionIds(version);
}
+ @Option(option = "release", description = "The version being released")
+ public void releaseVersion(String version) {
+ releaseVersion = Version.fromString(version);
+ }
+
@TaskAction
public void executeTask() throws IOException {
if (versionIds.isEmpty()) {
throw new IllegalArgumentException("No version ids specified");
}
+
+ if (releaseVersion.getMajor() < thisVersion.getMajor()) {
+ // don't need to update CCS version - this is for a different major
+ return;
+ }
+
Integer transportVersion = versionIds.get(TRANSPORT_VERSION_TYPE);
if (transportVersion == null) {
throw new IllegalArgumentException("TransportVersion id not specified");
}
-
Path versionJava = rootDir.resolve(TRANSPORT_VERSIONS_FILE_PATH);
CompilationUnit file = LexicalPreservingPrinter.setup(StaticJavaParser.parse(versionJava));
diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java
index c6320394ef5b9..e0581ebf67081 100644
--- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java
+++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java
@@ -35,6 +35,7 @@
import org.gradle.api.tasks.Sync;
import org.gradle.api.tasks.TaskProvider;
import org.gradle.api.tasks.testing.Test;
+import org.gradle.language.jvm.tasks.ProcessResources;
import java.io.File;
import java.nio.file.Path;
@@ -213,6 +214,17 @@ public void apply(Project project) {
.named(RestResourcesPlugin.COPY_YAML_TESTS_TASK)
.flatMap(CopyRestTestsTask::getOutputResourceDir);
+ // ensure we include other non rest spec related test resources
+ project.getTasks()
+ .withType(ProcessResources.class)
+ .named(yamlCompatTestSourceSet.getProcessResourcesTaskName())
+ .configure(processResources -> {
+ processResources.from(
+ sourceSets.getByName(YamlRestTestPlugin.YAML_REST_TEST).getResources(),
+ spec -> { spec.exclude("rest-api-spec/**"); }
+ );
+ });
+
// setup the test task
TaskProvider extends Test> yamlRestCompatTestTask = registerTestTask(project, yamlCompatTestSourceSet);
yamlRestCompatTestTask.configure(testTask -> {
@@ -221,7 +233,7 @@ public void apply(Project project) {
testTask.setTestClassesDirs(
yamlTestSourceSet.getOutput().getClassesDirs().plus(yamlCompatTestSourceSet.getOutput().getClassesDirs())
);
- testTask.onlyIf("Compatibility tests are available", t -> yamlCompatTestSourceSet.getAllSource().isEmpty() == false);
+ testTask.onlyIf("Compatibility tests are available", t -> yamlCompatTestSourceSet.getOutput().isEmpty() == false);
testTask.setClasspath(
yamlCompatTestSourceSet.getRuntimeClasspath()
// remove the "normal" api and tests
diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolver.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolver.java
index b8cffae0189ce..913a15517f0af 100644
--- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolver.java
+++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolver.java
@@ -23,9 +23,12 @@
import java.util.Map;
import java.util.Optional;
+/**
+ * Resolves released Oracle JDKs that are EOL.
+ */
public abstract class ArchivedOracleJdkToolchainResolver extends AbstractCustomJavaToolchainResolver {
- private static final Map ARCHIVED_BASE_VERSIONS = Maps.of(20, "20.0.2", 19, "19.0.2", 18, "18.0.2.1", 17, "17.0.7");
+ private static final Map ARCHIVED_BASE_VERSIONS = Maps.of(20, "20.0.2", 19, "19.0.2", 18, "18.0.2.1");
@Override
public Optional resolve(JavaToolchainRequest request) {
diff --git a/build-tools-internal/src/main/resources/minimumGradleVersion b/build-tools-internal/src/main/resources/minimumGradleVersion
index 83ea3179ddacc..2eb8a97206651 100644
--- a/build-tools-internal/src/main/resources/minimumGradleVersion
+++ b/build-tools-internal/src/main/resources/minimumGradleVersion
@@ -1 +1 @@
-8.8
\ No newline at end of file
+8.10.1
\ No newline at end of file
diff --git a/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolverSpec.groovy b/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolverSpec.groovy
index b7f08b6016679..dd6e7b324e745 100644
--- a/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolverSpec.groovy
+++ b/build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/toolchain/ArchivedOracleJdkToolchainResolverSpec.groovy
@@ -40,12 +40,6 @@ class ArchivedOracleJdkToolchainResolverSpec extends AbstractToolchainResolverSp
[18, ORACLE, LINUX, X86_64, "https://download.oracle.com/java/18/archive/jdk-18.0.2.1_linux-x64_bin.tar.gz"],
[18, ORACLE, LINUX, AARCH64, "https://download.oracle.com/java/18/archive/jdk-18.0.2.1_linux-aarch64_bin.tar.gz"],
[18, ORACLE, WINDOWS, X86_64, "https://download.oracle.com/java/18/archive/jdk-18.0.2.1_windows-x64_bin.zip"],
-
- [17, ORACLE, MAC_OS, X86_64, "https://download.oracle.com/java/17/archive/jdk-17.0.7_macos-x64_bin.tar.gz"],
- [17, ORACLE, MAC_OS, AARCH64, "https://download.oracle.com/java/17/archive/jdk-17.0.7_macos-aarch64_bin.tar.gz"],
- [17, ORACLE, LINUX, X86_64, "https://download.oracle.com/java/17/archive/jdk-17.0.7_linux-x64_bin.tar.gz"],
- [17, ORACLE, LINUX, AARCH64, "https://download.oracle.com/java/17/archive/jdk-17.0.7_linux-aarch64_bin.tar.gz"],
- [17, ORACLE, WINDOWS, X86_64, "https://download.oracle.com/java/17/archive/jdk-17.0.7_windows-x64_bin.zip"]
]
}
diff --git a/build-tools-internal/version.properties b/build-tools-internal/version.properties
index 0fa6142789381..6823a73c8bb8b 100644
--- a/build-tools-internal/version.properties
+++ b/build-tools-internal/version.properties
@@ -1,4 +1,4 @@
-elasticsearch = 8.15.0
+elasticsearch = 8.15.3
lucene = 9.11.1
bundled_jdk_vendor = openjdk
@@ -30,7 +30,7 @@ httpcore = 4.4.13
httpasyncclient = 4.1.5
commonslogging = 1.2
commonscodec = 1.15
-protobuf = 3.21.9
+protobuf = 3.25.5
# test dependencies
randomizedrunner = 2.8.0
diff --git a/build-tools/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java b/build-tools/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java
index 2bc4aa1a1be36..d4747c9a6c38e 100644
--- a/build-tools/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java
+++ b/build-tools/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java
@@ -14,6 +14,7 @@
import org.gradle.api.NamedDomainObjectContainer;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
+import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.dsl.DependencyHandler;
import org.gradle.api.artifacts.repositories.IvyArtifactRepository;
import org.gradle.api.artifacts.type.ArtifactTypeDefinition;
@@ -42,8 +43,10 @@ public class DistributionDownloadPlugin implements Plugin {
private static final String FAKE_SNAPSHOT_IVY_GROUP = "elasticsearch-distribution-snapshot";
private static final String DOWNLOAD_REPO_NAME = "elasticsearch-downloads";
private static final String SNAPSHOT_REPO_NAME = "elasticsearch-snapshots";
- public static final String DISTRO_EXTRACTED_CONFIG_PREFIX = "es_distro_extracted_";
- public static final String DISTRO_CONFIG_PREFIX = "es_distro_file_";
+
+ public static final String ES_DISTRO_CONFIG_PREFIX = "es_distro_";
+ public static final String DISTRO_EXTRACTED_CONFIG_PREFIX = ES_DISTRO_CONFIG_PREFIX + "extracted_";
+ public static final String DISTRO_CONFIG_PREFIX = ES_DISTRO_CONFIG_PREFIX + "file_";
private final ObjectFactory objectFactory;
private NamedDomainObjectContainer distributionsContainer;
@@ -51,6 +54,8 @@ public class DistributionDownloadPlugin implements Plugin {
private Property dockerAvailability;
+ private boolean writingDependencies = false;
+
@Inject
public DistributionDownloadPlugin(ObjectFactory objectFactory) {
this.objectFactory = objectFactory;
@@ -63,6 +68,7 @@ public void setDockerAvailability(Provider dockerAvailability) {
@Override
public void apply(Project project) {
+ writingDependencies = project.getGradle().getStartParameter().getWriteDependencyVerifications().isEmpty() == false;
project.getDependencies().registerTransform(UnzipTransform.class, transformSpec -> {
transformSpec.getFrom().attribute(ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIBUTE, ArtifactTypeDefinition.ZIP_TYPE);
transformSpec.getTo().attribute(ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIBUTE, ArtifactTypeDefinition.DIRECTORY_TYPE);
@@ -85,7 +91,6 @@ private void setupDistributionContainer(Project project) {
var extractedConfiguration = project.getConfigurations().create(DISTRO_EXTRACTED_CONFIG_PREFIX + name);
extractedConfiguration.getAttributes()
.attribute(ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIBUTE, ArtifactTypeDefinition.DIRECTORY_TYPE);
-
var distribution = new ElasticsearchDistribution(
name,
objectFactory,
@@ -94,16 +99,20 @@ private void setupDistributionContainer(Project project) {
objectFactory.fileCollection().from(extractedConfiguration)
);
- registerDistributionDependencies(project, distribution);
+ // when running with --write-dependency-verification to update dependency verification data,
+ // we do not register the dependencies as we ignore elasticsearch internal dependencies anyhow and
+ // want to reduce general resolution time
+ if (writingDependencies == false) {
+ registerDistributionDependencies(project, distribution);
+ }
return distribution;
});
project.getExtensions().add(CONTAINER_NAME, distributionsContainer);
}
private void registerDistributionDependencies(Project project, ElasticsearchDistribution distribution) {
- project.getConfigurations()
- .getByName(DISTRO_CONFIG_PREFIX + distribution.getName())
- .getDependencies()
+ Configuration distroConfig = project.getConfigurations().getByName(DISTRO_CONFIG_PREFIX + distribution.getName());
+ distroConfig.getDependencies()
.addLater(
project.provider(() -> distribution.maybeFreeze())
.map(
@@ -112,9 +121,9 @@ private void registerDistributionDependencies(Project project, ElasticsearchDist
)
);
- project.getConfigurations()
- .getByName(DISTRO_EXTRACTED_CONFIG_PREFIX + distribution.getName())
- .getDependencies()
+ Configuration extractedDistroConfig = project.getConfigurations()
+ .getByName(DISTRO_EXTRACTED_CONFIG_PREFIX + distribution.getName());
+ extractedDistroConfig.getDependencies()
.addAllLater(
project.provider(() -> distribution.maybeFreeze())
.map(
diff --git a/build-tools/src/main/java/org/elasticsearch/gradle/test/GradleTestPolicySetupPlugin.java b/build-tools/src/main/java/org/elasticsearch/gradle/test/GradleTestPolicySetupPlugin.java
index a1da860abe26a..9593a281686e7 100644
--- a/build-tools/src/main/java/org/elasticsearch/gradle/test/GradleTestPolicySetupPlugin.java
+++ b/build-tools/src/main/java/org/elasticsearch/gradle/test/GradleTestPolicySetupPlugin.java
@@ -22,6 +22,9 @@ public void apply(Project project) {
test.systemProperty("tests.gradle", true);
test.systemProperty("tests.task", test.getPath());
+ // Flag is required for later Java versions since our tests use a custom security manager
+ test.jvmArgs("-Djava.security.manager=allow");
+
SystemPropertyCommandLineArgumentProvider nonInputProperties = new SystemPropertyCommandLineArgumentProvider();
// don't track these as inputs since they contain absolute paths and break cache relocatability
nonInputProperties.systemProperty("gradle.dist.lib", gradle.getGradleHomeDir().getAbsolutePath() + "/lib");
diff --git a/build.gradle b/build.gradle
index 3869d21b49bfe..01fdace570ce0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -19,6 +19,7 @@ import org.elasticsearch.gradle.internal.info.BuildParams
import org.elasticsearch.gradle.util.GradleUtils
import org.gradle.plugins.ide.eclipse.model.AccessRule
import org.gradle.plugins.ide.eclipse.model.ProjectDependency
+import org.elasticsearch.gradle.DistributionDownloadPlugin
import java.nio.file.Files
@@ -284,11 +285,16 @@ allprojects {
}
tasks.register('resolveAllDependencies', ResolveAllDependencies) {
- configs = project.configurations
+ def ignoredPrefixes = [DistributionDownloadPlugin.ES_DISTRO_CONFIG_PREFIX, "jdbcDriver"]
+ configs = project.configurations.matching { config -> ignoredPrefixes.any { config.name.startsWith(it) } == false }
resolveJavaToolChain = true
if (project.path.contains("fixture")) {
dependsOn tasks.withType(ComposePull)
}
+ if (project.path.contains(":distribution:docker")) {
+ enabled = false
+ }
+
}
plugins.withId('lifecycle-base') {
diff --git a/distribution/docker/src/docker/Dockerfile b/distribution/docker/src/docker/Dockerfile
index 32f35b05015b9..2a2a77a6df820 100644
--- a/distribution/docker/src/docker/Dockerfile
+++ b/distribution/docker/src/docker/Dockerfile
@@ -22,7 +22,7 @@
<% if (docker_base == 'iron_bank') { %>
ARG BASE_REGISTRY=registry1.dso.mil
ARG BASE_IMAGE=ironbank/redhat/ubi/ubi9
-ARG BASE_TAG=9.3
+ARG BASE_TAG=9.4
<% } %>
################################################################################
diff --git a/distribution/docker/src/docker/iron_bank/hardening_manifest.yaml b/distribution/docker/src/docker/iron_bank/hardening_manifest.yaml
index 38ce16a413af2..f4364c5008c09 100644
--- a/distribution/docker/src/docker/iron_bank/hardening_manifest.yaml
+++ b/distribution/docker/src/docker/iron_bank/hardening_manifest.yaml
@@ -14,7 +14,7 @@ tags:
# Build args passed to Dockerfile ARGs
args:
BASE_IMAGE: "redhat/ubi/ubi9"
- BASE_TAG: "9.3"
+ BASE_TAG: "9.4"
# Docker image labels
labels:
diff --git a/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/SystemJvmOptions.java b/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/SystemJvmOptions.java
index 298b4671582b5..7b62f3fc4b63f 100644
--- a/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/SystemJvmOptions.java
+++ b/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/SystemJvmOptions.java
@@ -11,6 +11,7 @@
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.util.concurrent.EsExecutors;
import org.elasticsearch.core.SuppressForbidden;
+import org.elasticsearch.core.UpdateForV9;
import java.io.File;
import java.nio.file.Path;
@@ -64,11 +65,7 @@ static List systemJvmOptions(Settings nodeSettings, final Map systemJvmOptions(Settings nodeSettings, final Map e.isEmpty() == false).collect(Collectors.toList());
}
+ @UpdateForV9 // only use CLDR in v9+
+ private static String getLocaleProviders() {
+ /*
+ * Specify SPI to load IsoCalendarDataProvider (see #48209), specifying the first day of week as Monday.
+ * When on pre-23, use COMPAT instead to maintain existing date formats as much as we can.
+ * When on JDK 23+, use the default CLDR locale database, as COMPAT was removed in JDK 23.
+ */
+ return Runtime.version().feature() >= 23 ? "SPI,CLDR" : "SPI,COMPAT";
+ }
+
/*
* The virtual file /proc/self/cgroup should list the current cgroup
* membership. For each hierarchy, you can follow the cgroup path from
diff --git a/docs/changelog/101373.yaml b/docs/changelog/101373.yaml
deleted file mode 100644
index 53b5680301c79..0000000000000
--- a/docs/changelog/101373.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 101373
-summary: Adding aggregations support for the `_ignored` field
-area: Search
-type: feature
-issues:
- - 59946
diff --git a/docs/changelog/103374.yaml b/docs/changelog/103374.yaml
deleted file mode 100644
index fcdee9185eb92..0000000000000
--- a/docs/changelog/103374.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-pr: 103374
-summary: Cut over stored fields to ZSTD for compression
-area: Search
-type: enhancement
-issues: []
-highlight:
- title: Stored fields are now compressed with ZStandard instead of LZ4/DEFLATE
- body: |-
- 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.
- notable: true
diff --git a/docs/changelog/105792.yaml b/docs/changelog/105792.yaml
deleted file mode 100644
index 2ad5aa970c214..0000000000000
--- a/docs/changelog/105792.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-pr: 105792
-summary: "Change `skip_unavailable` remote cluster setting default value to true"
-area: Search
-type: breaking
-issues: []
-breaking:
- title: "Change `skip_unavailable` remote cluster setting default value to true"
- area: Cluster and node setting
- details: The default value of the `skip_unavailable` setting is now set to true.
- All existing and future remote clusters that do not define this setting will use the new default.
- This setting only affects cross-cluster searches using the _search or _async_search API.
- impact: Unavailable remote clusters in a cross-cluster search will no longer cause the search to fail unless
- skip_unavailable is configured to be `false` in elasticsearch.yml or via the `_cluster/settings` API.
- Unavailable clusters with `skip_unavailable`=`true` (either explicitly or by using the new default) are marked
- as SKIPPED in the search response metadata section and do not fail the entire search. If users want to ensure that a
- search returns a failure when a particular remote cluster is not available, `skip_unavailable` must be now be
- set explicitly.
- notable: false
diff --git a/docs/changelog/105829.yaml b/docs/changelog/105829.yaml
deleted file mode 100644
index d9f8439e4b887..0000000000000
--- a/docs/changelog/105829.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 105829
-summary: Log shard movements
-area: Allocation
-type: enhancement
-issues: []
diff --git a/docs/changelog/106252.yaml b/docs/changelog/106252.yaml
deleted file mode 100644
index 5e3f084632b9d..0000000000000
--- a/docs/changelog/106252.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 106252
-summary: Add min/max range of the `event.ingested` field to cluster state for searchable
- snapshots
-area: Search
-type: enhancement
-issues: []
diff --git a/docs/changelog/106253.yaml b/docs/changelog/106253.yaml
deleted file mode 100644
index b80cda37f63c7..0000000000000
--- a/docs/changelog/106253.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 106253
-summary: Fix for from parameter when using `sub_searches` and rank
-area: Ranking
-type: bug
-issues:
- - 99011
diff --git a/docs/changelog/106486.yaml b/docs/changelog/106486.yaml
deleted file mode 100644
index b33df50780e02..0000000000000
--- a/docs/changelog/106486.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-pr: 106486
-summary: Create custom parser for ISO-8601 datetimes
-area: Infra/Core
-type: enhancement
-issues:
- - 102063
-highlight:
- title: New custom parser for ISO-8601 datetimes
- body: |-
- 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.
diff --git a/docs/changelog/106553.yaml b/docs/changelog/106553.yaml
deleted file mode 100644
index 0ec5b1bb02da8..0000000000000
--- a/docs/changelog/106553.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 106553
-summary: Add support for hiragana_uppercase & katakana_uppercase token filters in kuromoji analysis plugin
-area: Search
-type: enhancement
-issues: []
diff --git a/docs/changelog/106591.yaml b/docs/changelog/106591.yaml
deleted file mode 100644
index 6a7814cb9cede..0000000000000
--- a/docs/changelog/106591.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 106591
-summary: Make dense vector field type updatable
-area: Search
-type: enhancement
-issues: []
diff --git a/docs/changelog/106820.yaml b/docs/changelog/106820.yaml
deleted file mode 100644
index d854e3984c13d..0000000000000
--- a/docs/changelog/106820.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 106820
-summary: Add a capabilities API to check node and cluster capabilities
-area: Infra/REST API
-type: feature
-issues: []
diff --git a/docs/changelog/107081.yaml b/docs/changelog/107081.yaml
deleted file mode 100644
index 2acd2f919b476..0000000000000
--- a/docs/changelog/107081.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107081
-summary: Implement synthetic source support for range fields
-area: Mapping
-type: feature
-issues: []
diff --git a/docs/changelog/107088.yaml b/docs/changelog/107088.yaml
deleted file mode 100644
index 01a926f185eea..0000000000000
--- a/docs/changelog/107088.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107088
-summary: Introduce role description field
-area: Authorization
-type: enhancement
-issues: []
diff --git a/docs/changelog/107191.yaml b/docs/changelog/107191.yaml
deleted file mode 100644
index 5ef6297c0f3f1..0000000000000
--- a/docs/changelog/107191.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-pr: 107191
-summary: Stricter failure handling in multi-repo get-snapshots request handling
-area: Snapshot/Restore
-type: bug
-issues: []
-highlight:
- title: Stricter failure handling in multi-repo get-snapshots request handling
- body: |
- 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.
- notable: true
diff --git a/docs/changelog/107216.yaml b/docs/changelog/107216.yaml
deleted file mode 100644
index 7144eedf9bea4..0000000000000
--- a/docs/changelog/107216.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107216
-summary: Add per-field KNN vector format to Index Segments API
-area: Search
-type: enhancement
-issues: []
diff --git a/docs/changelog/107240.yaml b/docs/changelog/107240.yaml
deleted file mode 100644
index baf4c222a9a27..0000000000000
--- a/docs/changelog/107240.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107240
-summary: Include doc size info in ingest stats
-area: Ingest Node
-type: enhancement
-issues:
- - 106386
diff --git a/docs/changelog/107244.yaml b/docs/changelog/107244.yaml
deleted file mode 100644
index f805796674f93..0000000000000
--- a/docs/changelog/107244.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107244
-summary: Support effective watermark thresholds in node stats API
-area: Allocation
-type: enhancement
-issues: [106676]
diff --git a/docs/changelog/107279.yaml b/docs/changelog/107279.yaml
deleted file mode 100644
index a2940ecc9ba2d..0000000000000
--- a/docs/changelog/107279.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107279
-summary: Introduce _transform/_node_stats API
-area: Transform
-type: feature
-issues: []
diff --git a/docs/changelog/107409.yaml b/docs/changelog/107409.yaml
deleted file mode 100644
index 6f2350239772f..0000000000000
--- a/docs/changelog/107409.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107409
-summary: "ESQL: Introduce a casting operator, `::`"
-area: ES|QL
-type: feature
-issues: []
diff --git a/docs/changelog/107410.yaml b/docs/changelog/107410.yaml
deleted file mode 100644
index 5026e88cfa762..0000000000000
--- a/docs/changelog/107410.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107410
-summary: Cluster-state based Security role mapper
-area: Authorization
-type: enhancement
-issues: []
diff --git a/docs/changelog/107415.yaml b/docs/changelog/107415.yaml
deleted file mode 100644
index 8877d0426c60d..0000000000000
--- a/docs/changelog/107415.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107415
-summary: Fix `DecayFunctions'` `toString`
-area: Search
-type: bug
-issues:
- - 100870
diff --git a/docs/changelog/107426.yaml b/docs/changelog/107426.yaml
deleted file mode 100644
index 2feed3df56108..0000000000000
--- a/docs/changelog/107426.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107426
-summary: Support wait indefinitely for search tasks to complete on node shutdown
-area: Infra/Node Lifecycle
-type: bug
-issues: []
diff --git a/docs/changelog/107435.yaml b/docs/changelog/107435.yaml
deleted file mode 100644
index ae5d2215419c4..0000000000000
--- a/docs/changelog/107435.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107435
-summary: '`NoSuchRemoteClusterException` should not be thrown when a remote is configured'
-area: Network
-type: bug
-issues:
- - 107381
diff --git a/docs/changelog/107493.yaml b/docs/changelog/107493.yaml
deleted file mode 100644
index dfd45e1493c95..0000000000000
--- a/docs/changelog/107493.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107493
-summary: Remote cluster - API key security model - cluster privileges
-area: Security
-type: enhancement
-issues: []
diff --git a/docs/changelog/107545.yaml b/docs/changelog/107545.yaml
deleted file mode 100644
index ad457cc5a533f..0000000000000
--- a/docs/changelog/107545.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107545
-summary: "ESQL: Union Types Support"
-area: ES|QL
-type: enhancement
-issues:
- - 100603
diff --git a/docs/changelog/107549.yaml b/docs/changelog/107549.yaml
deleted file mode 100644
index 36250cf65b4d9..0000000000000
--- a/docs/changelog/107549.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107549
-summary: Add synthetic source support for binary fields
-area: Mapping
-type: feature
-issues: []
diff --git a/docs/changelog/107567.yaml b/docs/changelog/107567.yaml
deleted file mode 100644
index 558b5b570b1fb..0000000000000
--- a/docs/changelog/107567.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107567
-summary: Add ignored field values to synthetic source
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/107579.yaml b/docs/changelog/107579.yaml
deleted file mode 100644
index fdee59424b8de..0000000000000
--- a/docs/changelog/107579.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107579
-summary: Adding `hits_time_in_millis` and `misses_time_in_millis` to enrich cache
- stats
-area: Ingest Node
-type: enhancement
-issues: []
diff --git a/docs/changelog/107593.yaml b/docs/changelog/107593.yaml
deleted file mode 100644
index 2e3d2cbc80119..0000000000000
--- a/docs/changelog/107593.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107593
-summary: Add auto-sharding APM metrics
-area: Infra/Metrics
-type: enhancement
-issues: []
diff --git a/docs/changelog/107640.yaml b/docs/changelog/107640.yaml
deleted file mode 100644
index 9871943481f20..0000000000000
--- a/docs/changelog/107640.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107640
-summary: "Unified Highlighter to support matched_fields "
-area: Highlighting
-type: enhancement
-issues:
- - 5172
diff --git a/docs/changelog/107645.yaml b/docs/changelog/107645.yaml
deleted file mode 100644
index 93fc0f2a89b3a..0000000000000
--- a/docs/changelog/107645.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-pr: 107645
-summary: Add `_name` support for top level `knn` clauses
-area: Search
-type: enhancement
-issues:
- - 106254
- - 107448
diff --git a/docs/changelog/107647.yaml b/docs/changelog/107647.yaml
deleted file mode 100644
index 97d98a7c91079..0000000000000
--- a/docs/changelog/107647.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107647
-summary: Adding human readable times to geoip stats
-area: Ingest Node
-type: enhancement
-issues: []
diff --git a/docs/changelog/107663.yaml b/docs/changelog/107663.yaml
deleted file mode 100644
index a7c3dc185425a..0000000000000
--- a/docs/changelog/107663.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107663
-summary: Optimize `GeoBounds` and `GeoCentroid` aggregations for single value fields
-area: Geo
-type: enhancement
-issues: []
diff --git a/docs/changelog/107675.yaml b/docs/changelog/107675.yaml
deleted file mode 100644
index b1d51cd3f8538..0000000000000
--- a/docs/changelog/107675.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-pr: 107675
-summary: Interpret `?timeout=-1` as infinite ack timeout
-area: Cluster Coordination
-type: breaking
-issues: []
-breaking:
- title: Interpret `?timeout=-1` as infinite ack timeout
- area: REST API
- details: |
- Today {es} accepts the parameter `?timeout=-1` in many APIs, but interprets
- this to mean the same as `?timeout=0`. From 8.15 onwards `?timeout=-1` will
- mean to wait indefinitely, aligning the behaviour of this parameter with
- other similar parameters such as `?master_timeout`.
- impact: |
- Use `?timeout=0` to force relevant operations to time out immediately
- instead of `?timeout=-1`
- notable: false
diff --git a/docs/changelog/107676.yaml b/docs/changelog/107676.yaml
deleted file mode 100644
index b14bc29e66efd..0000000000000
--- a/docs/changelog/107676.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107676
-summary: Add model download progress to the download task status
-area: Machine Learning
-type: enhancement
-issues: []
diff --git a/docs/changelog/107706.yaml b/docs/changelog/107706.yaml
deleted file mode 100644
index 76b7f662bf0e0..0000000000000
--- a/docs/changelog/107706.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107706
-summary: Add rate limiting support for the Inference API
-area: Machine Learning
-type: enhancement
-issues: []
diff --git a/docs/changelog/107735.yaml b/docs/changelog/107735.yaml
deleted file mode 100644
index 372cb59ba8b1f..0000000000000
--- a/docs/changelog/107735.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107735
-summary: Implement synthetic source support for annotated text field
-area: Mapping
-type: feature
-issues: []
diff --git a/docs/changelog/107739.yaml b/docs/changelog/107739.yaml
deleted file mode 100644
index c55a0e332b4f6..0000000000000
--- a/docs/changelog/107739.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107739
-summary: Binary field enables doc values by default for index mode with synthe…
-area: Mapping
-type: enhancement
-issues:
- - 107554
diff --git a/docs/changelog/107764.yaml b/docs/changelog/107764.yaml
deleted file mode 100644
index 3f83efc789014..0000000000000
--- a/docs/changelog/107764.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107764
-summary: Increase size of big arrays only when there is an actual value in the aggregators
-area: Aggregations
-type: enhancement
-issues: []
diff --git a/docs/changelog/107779.yaml b/docs/changelog/107779.yaml
deleted file mode 100644
index a41c19a2329e0..0000000000000
--- a/docs/changelog/107779.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107779
-summary: Allow rescorer with field collapsing
-area: Search
-type: enhancement
-issues:
- - 27243
\ No newline at end of file
diff --git a/docs/changelog/107792.yaml b/docs/changelog/107792.yaml
deleted file mode 100644
index bd9730d49d5d6..0000000000000
--- a/docs/changelog/107792.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107792
-summary: Halt Indexer on Stop/Abort API
-area: Transform
-type: bug
-issues: []
diff --git a/docs/changelog/107813.yaml b/docs/changelog/107813.yaml
deleted file mode 100644
index 1cbb518a8be5b..0000000000000
--- a/docs/changelog/107813.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107813
-summary: Increase size of big arrays only when there is an actual value in the aggregators
- (Analytics module)
-area: Aggregations
-type: enhancement
-issues: []
diff --git a/docs/changelog/107827.yaml b/docs/changelog/107827.yaml
deleted file mode 100644
index 7cf217567b745..0000000000000
--- a/docs/changelog/107827.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107827
-summary: Add permission to secure access to certain config files
-area: Security
-type: bug
-issues: []
diff --git a/docs/changelog/107832.yaml b/docs/changelog/107832.yaml
deleted file mode 100644
index 491c491736005..0000000000000
--- a/docs/changelog/107832.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107832
-summary: Optimise few metric aggregations for single value fields
-area: Aggregations
-type: enhancement
-issues: []
diff --git a/docs/changelog/107862.yaml b/docs/changelog/107862.yaml
deleted file mode 100644
index 77f7a8c9fb02a..0000000000000
--- a/docs/changelog/107862.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107862
-summary: Fix serialization of put-shutdown request
-area: Infra/Node Lifecycle
-type: bug
-issues:
- - 107857
diff --git a/docs/changelog/107876.yaml b/docs/changelog/107876.yaml
deleted file mode 100644
index 21624cacf7e1d..0000000000000
--- a/docs/changelog/107876.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107876
-summary: "ESQL: Add aggregates node level reduction"
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/107877.yaml b/docs/changelog/107877.yaml
deleted file mode 100644
index cf458b3aa3a42..0000000000000
--- a/docs/changelog/107877.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107877
-summary: Support metrics counter types in ESQL
-area: "ES|QL"
-type: enhancement
-issues: []
diff --git a/docs/changelog/107886.yaml b/docs/changelog/107886.yaml
deleted file mode 100644
index a328bc2a2a208..0000000000000
--- a/docs/changelog/107886.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107886
-summary: Cluster state role mapper file settings service
-area: Authorization
-type: enhancement
-issues: []
diff --git a/docs/changelog/107892.yaml b/docs/changelog/107892.yaml
deleted file mode 100644
index 5fd5404c48d02..0000000000000
--- a/docs/changelog/107892.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107892
-summary: Optimise cardinality aggregations for single value fields
-area: Aggregations
-type: enhancement
-issues: []
diff --git a/docs/changelog/107893.yaml b/docs/changelog/107893.yaml
deleted file mode 100644
index 61f0f4d76e679..0000000000000
--- a/docs/changelog/107893.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107893
-summary: Optimise histogram aggregations for single value fields
-area: Aggregations
-type: enhancement
-issues: []
diff --git a/docs/changelog/107897.yaml b/docs/changelog/107897.yaml
deleted file mode 100644
index e4a2a5270475d..0000000000000
--- a/docs/changelog/107897.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107897
-summary: Optimise composite aggregations for single value fields
-area: Aggregations
-type: enhancement
-issues: []
diff --git a/docs/changelog/107917.yaml b/docs/changelog/107917.yaml
deleted file mode 100644
index 18125bf46f4b7..0000000000000
--- a/docs/changelog/107917.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107917
-summary: Exit gracefully when deleted
-area: Transform
-type: bug
-issues:
- - 107266
diff --git a/docs/changelog/107922.yaml b/docs/changelog/107922.yaml
deleted file mode 100644
index e28d0f6262af4..0000000000000
--- a/docs/changelog/107922.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107922
-summary: Feature/annotated text store defaults
-area: Mapping
-type: enhancement
-issues:
- - 107734
diff --git a/docs/changelog/107930.yaml b/docs/changelog/107930.yaml
deleted file mode 100644
index 90af5c55b8604..0000000000000
--- a/docs/changelog/107930.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107930
-summary: Optimise terms aggregations for single value fields
-area: Aggregations
-type: enhancement
-issues: []
diff --git a/docs/changelog/107937.yaml b/docs/changelog/107937.yaml
deleted file mode 100644
index 5938c8e8b6602..0000000000000
--- a/docs/changelog/107937.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107937
-summary: Optimise multiterms aggregation for single value fields
-area: Aggregations
-type: enhancement
-issues: []
diff --git a/docs/changelog/107947.yaml b/docs/changelog/107947.yaml
deleted file mode 100644
index 637ac3c005779..0000000000000
--- a/docs/changelog/107947.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107947
-summary: "ESQL: Fix equals `hashCode` for functions"
-area: ES|QL
-type: bug
-issues:
- - 104393
diff --git a/docs/changelog/107967.yaml b/docs/changelog/107967.yaml
deleted file mode 100644
index 159370e44f236..0000000000000
--- a/docs/changelog/107967.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107967
-summary: Sort time series indices by time range in `GetDataStreams` API
-area: TSDB
-type: bug
-issues:
- - 102088
diff --git a/docs/changelog/107972.yaml b/docs/changelog/107972.yaml
deleted file mode 100644
index 3ec83d6a56954..0000000000000
--- a/docs/changelog/107972.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107972
-summary: Require question to be non-null in `QuestionAnsweringConfig`
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/107977.yaml b/docs/changelog/107977.yaml
deleted file mode 100644
index fdbbb57d7e48f..0000000000000
--- a/docs/changelog/107977.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107977
-summary: Fix off by one error when handling null values in range fields
-area: Mapping
-type: bug
-issues:
- - 107282
diff --git a/docs/changelog/107978.yaml b/docs/changelog/107978.yaml
deleted file mode 100644
index 50115df9ee092..0000000000000
--- a/docs/changelog/107978.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107978
-summary: Drop shards close timeout when stopping node.
-area: Engine
-type: enhancement
-issues:
- - 107938
diff --git a/docs/changelog/107987.yaml b/docs/changelog/107987.yaml
deleted file mode 100644
index e8afebde0b190..0000000000000
--- a/docs/changelog/107987.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 107987
-summary: "ESQL: Implement LOOKUP, an \"inline\" enrich"
-area: ES|QL
-type: enhancement
-issues:
- - 107306
diff --git a/docs/changelog/107990.yaml b/docs/changelog/107990.yaml
deleted file mode 100644
index 80cb96aca4426..0000000000000
--- a/docs/changelog/107990.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 107990
-summary: Optimise `time_series` aggregation for single value fields
-area: TSDB
-type: enhancement
-issues: []
diff --git a/docs/changelog/108016.yaml b/docs/changelog/108016.yaml
deleted file mode 100644
index 0aa3f86a6f859..0000000000000
--- a/docs/changelog/108016.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108016
-summary: Optimise `BinaryRangeAggregator` for single value fields
-area: Aggregations
-type: enhancement
-issues: []
diff --git a/docs/changelog/108019.yaml b/docs/changelog/108019.yaml
deleted file mode 100644
index 69e8e9fd371f8..0000000000000
--- a/docs/changelog/108019.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108019
-summary: Ignore additional cpu.stat fields
-area: Infra/Core
-type: bug
-issues:
- - 107983
diff --git a/docs/changelog/108051.yaml b/docs/changelog/108051.yaml
deleted file mode 100644
index a47e1192c6090..0000000000000
--- a/docs/changelog/108051.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108051
-summary: Track synthetic source for disabled objects
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/108065.yaml b/docs/changelog/108065.yaml
deleted file mode 100644
index 2ec93bf6e6295..0000000000000
--- a/docs/changelog/108065.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108065
-summary: '`DenseVectorFieldMapper` fixed typo'
-area: Mapping
-type: bug
-issues: []
diff --git a/docs/changelog/108070.yaml b/docs/changelog/108070.yaml
deleted file mode 100644
index cde191aa50804..0000000000000
--- a/docs/changelog/108070.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108070
-summary: Redirect `VersionConflict` to reset code
-area: Transform
-type: bug
-issues: []
diff --git a/docs/changelog/108088.yaml b/docs/changelog/108088.yaml
deleted file mode 100644
index 95c58f6dc19f1..0000000000000
--- a/docs/changelog/108088.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108088
-summary: Add a SIMD (AVX2) optimised vector distance function for int7 on x64
-area: "Search"
-type: enhancement
-issues: []
diff --git a/docs/changelog/108089.yaml b/docs/changelog/108089.yaml
deleted file mode 100644
index 02fb6349185a6..0000000000000
--- a/docs/changelog/108089.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108089
-summary: "ES|QL: limit query depth to 500 levels"
-area: ES|QL
-type: bug
-issues:
- - 107752
diff --git a/docs/changelog/108106.yaml b/docs/changelog/108106.yaml
deleted file mode 100644
index e9dd438e620c4..0000000000000
--- a/docs/changelog/108106.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108106
-summary: Simulate should succeed if `ignore_missing_pipeline`
-area: Ingest Node
-type: bug
-issues:
- - 107314
diff --git a/docs/changelog/108118.yaml b/docs/changelog/108118.yaml
deleted file mode 100644
index b9b0f1c1406e0..0000000000000
--- a/docs/changelog/108118.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108118
-summary: Optimize for single value in ordinals grouping
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/108122.yaml b/docs/changelog/108122.yaml
deleted file mode 100644
index 981ab39b9dad8..0000000000000
--- a/docs/changelog/108122.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108122
-summary: Correct query profiling for conjunctions
-area: Search
-type: bug
-issues:
- - 108116
diff --git a/docs/changelog/108130.yaml b/docs/changelog/108130.yaml
deleted file mode 100644
index 5b431bdb0cc1b..0000000000000
--- a/docs/changelog/108130.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108130
-summary: Optimise frequent item sets aggregation for single value fields
-area: Machine Learning
-type: enhancement
-issues: []
diff --git a/docs/changelog/108131.yaml b/docs/changelog/108131.yaml
deleted file mode 100644
index 7a4286c1e44a0..0000000000000
--- a/docs/changelog/108131.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108131
-summary: "Inference Processor: skip inference when all fields are missing"
-area: Machine Learning
-type: enhancement
-issues: []
diff --git a/docs/changelog/108144.yaml b/docs/changelog/108144.yaml
deleted file mode 100644
index 6ff5b1d600d0e..0000000000000
--- a/docs/changelog/108144.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108144
-summary: Bump Tika dependency to 2.9.2
-area: Ingest Node
-type: upgrade
-issues: []
diff --git a/docs/changelog/108145.yaml b/docs/changelog/108145.yaml
deleted file mode 100644
index b8c9428c1e3a8..0000000000000
--- a/docs/changelog/108145.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108145
-summary: Async close of `IndexShard`
-area: Engine
-type: bug
-issues: []
diff --git a/docs/changelog/108146.yaml b/docs/changelog/108146.yaml
deleted file mode 100644
index 2a4f917134090..0000000000000
--- a/docs/changelog/108146.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108146
-summary: Allow deletion of the ELSER inference service when reference in ingest
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/108155.yaml b/docs/changelog/108155.yaml
deleted file mode 100644
index 57db86b4005b9..0000000000000
--- a/docs/changelog/108155.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108155
-summary: Upgrade to Netty 4.1.109
-area: Network
-type: upgrade
-issues: []
diff --git a/docs/changelog/108161.yaml b/docs/changelog/108161.yaml
deleted file mode 100644
index 73fa41e2089d3..0000000000000
--- a/docs/changelog/108161.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108161
-summary: Refactor TextEmbeddingResults to use primitives rather than objects
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/108165.yaml b/docs/changelog/108165.yaml
deleted file mode 100644
index b88b0f5e217dd..0000000000000
--- a/docs/changelog/108165.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108165
-summary: Add `BlockHash` for 3 `BytesRefs`
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/108171.yaml b/docs/changelog/108171.yaml
deleted file mode 100644
index 1ec17bb3e411d..0000000000000
--- a/docs/changelog/108171.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108171
-summary: "add Elastic-internal stable bridge api for use by Logstash"
-area: Infra/Core
-type: enhancement
-issues: []
diff --git a/docs/changelog/108222.yaml b/docs/changelog/108222.yaml
deleted file mode 100644
index 701b853441e32..0000000000000
--- a/docs/changelog/108222.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108222
-summary: Add generic fallback implementation for synthetic source
-area: Mapping
-type: feature
-issues: []
diff --git a/docs/changelog/108223.yaml b/docs/changelog/108223.yaml
deleted file mode 100644
index ba8756a8f9c68..0000000000000
--- a/docs/changelog/108223.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108223
-summary: Upgrade bouncy castle (non-fips) to 1.78.1
-area: Security
-type: upgrade
-issues: []
diff --git a/docs/changelog/108227.yaml b/docs/changelog/108227.yaml
deleted file mode 100644
index 79f69bc4aaff6..0000000000000
--- a/docs/changelog/108227.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108227
-summary: "Apm-data: improve indexing resilience"
-area: Data streams
-type: enhancement
-issues: []
diff --git a/docs/changelog/108254.yaml b/docs/changelog/108254.yaml
deleted file mode 100644
index 3bf08e8b8f5fc..0000000000000
--- a/docs/changelog/108254.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108254
-summary: Add `sparse_vector` query
-area: Machine Learning
-type: enhancement
-issues: []
diff --git a/docs/changelog/108266.yaml b/docs/changelog/108266.yaml
deleted file mode 100644
index 5a189cfcdc258..0000000000000
--- a/docs/changelog/108266.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108266
-summary: Log details of non-green indicators in `HealthPeriodicLogger`
-area: Health
-type: enhancement
-issues: []
diff --git a/docs/changelog/108300.yaml b/docs/changelog/108300.yaml
deleted file mode 100644
index c4d6e468113a4..0000000000000
--- a/docs/changelog/108300.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108300
-summary: "ESQL: Add more time span units"
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/108306.yaml b/docs/changelog/108306.yaml
deleted file mode 100644
index 7a104ce880f43..0000000000000
--- a/docs/changelog/108306.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108306
-summary: Enable inter-segment concurrency for low cardinality numeric terms aggs
-area: Aggregations
-type: enhancement
-issues: []
diff --git a/docs/changelog/108333.yaml b/docs/changelog/108333.yaml
deleted file mode 100644
index c3152500ce1b2..0000000000000
--- a/docs/changelog/108333.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108333
-summary: Allow `read_slm` to call GET /_slm/status
-area: ILM+SLM
-type: bug
-issues: []
diff --git a/docs/changelog/108340.yaml b/docs/changelog/108340.yaml
deleted file mode 100644
index fb2ea72c0a0f5..0000000000000
--- a/docs/changelog/108340.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108340
-summary: "Apm-data: increase version for templates"
-area: Data streams
-type: enhancement
-issues: []
diff --git a/docs/changelog/108349.yaml b/docs/changelog/108349.yaml
deleted file mode 100644
index 6d9ea3d658dca..0000000000000
--- a/docs/changelog/108349.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108349
-summary: "Ecs@mappings: reduce scope for `ecs_geo_point`"
-area: Data streams
-type: bug
-issues:
- - 108338
diff --git a/docs/changelog/108379.yaml b/docs/changelog/108379.yaml
deleted file mode 100644
index 312856a5db33d..0000000000000
--- a/docs/changelog/108379.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108379
-summary: Create a new `NodeRequest` for every `NodesDataTiersUsageTransport` use
-area: Indices APIs
-type: bug
-issues: []
diff --git a/docs/changelog/108394.yaml b/docs/changelog/108394.yaml
deleted file mode 100644
index 58f48fa548c6e..0000000000000
--- a/docs/changelog/108394.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108394
-summary: Handle `IndexNotFoundException`
-area: Transform
-type: bug
-issues:
- - 107263
diff --git a/docs/changelog/108395.yaml b/docs/changelog/108395.yaml
deleted file mode 100644
index c33cf169a99fa..0000000000000
--- a/docs/changelog/108395.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108395
-summary: "ESQL: change from quoting from backtick to quote"
-area: ES|QL
-type: bug
-issues: []
diff --git a/docs/changelog/108396.yaml b/docs/changelog/108396.yaml
deleted file mode 100644
index 63937646b755c..0000000000000
--- a/docs/changelog/108396.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108396
-summary: "Apm-data: improve default pipeline performance"
-area: Data streams
-type: enhancement
-issues:
- - 108290
diff --git a/docs/changelog/108409.yaml b/docs/changelog/108409.yaml
deleted file mode 100644
index 6cff86cf93930..0000000000000
--- a/docs/changelog/108409.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108409
-summary: Support multiple associated groups for TopN
-area: Application
-type: enhancement
-issues:
- - 108018
diff --git a/docs/changelog/108410.yaml b/docs/changelog/108410.yaml
deleted file mode 100644
index 5fd831231a3be..0000000000000
--- a/docs/changelog/108410.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108410
-summary: GeoIP tasks should wait longer for master
-area: Ingest Node
-type: bug
-issues: []
diff --git a/docs/changelog/108417.yaml b/docs/changelog/108417.yaml
deleted file mode 100644
index bb650922f1be5..0000000000000
--- a/docs/changelog/108417.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108417
-summary: Track source for arrays of objects
-area: Mapping
-type: enhancement
-issues:
- - 90708
diff --git a/docs/changelog/108421.yaml b/docs/changelog/108421.yaml
deleted file mode 100644
index 1f077a4a2cb7c..0000000000000
--- a/docs/changelog/108421.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108421
-summary: "[ES|QL] Support Named and Positional Parameters in `EsqlQueryRequest`"
-area: ES|QL
-type: enhancement
-issues:
- - 107029
diff --git a/docs/changelog/108429.yaml b/docs/changelog/108429.yaml
deleted file mode 100644
index 562454a0de256..0000000000000
--- a/docs/changelog/108429.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108429
-summary: Fix `ClassCastException` in Significant Terms
-area: Aggregations
-type: bug
-issues:
- - 108427
diff --git a/docs/changelog/108444.yaml b/docs/changelog/108444.yaml
deleted file mode 100644
index c946ab24f939a..0000000000000
--- a/docs/changelog/108444.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108444
-summary: "Apm-data: ignore malformed fields, and too many dynamic fields"
-area: Data streams
-type: enhancement
-issues: []
diff --git a/docs/changelog/108452.yaml b/docs/changelog/108452.yaml
deleted file mode 100644
index fdf531602c806..0000000000000
--- a/docs/changelog/108452.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108452
-summary: Add the rerank task to the Elasticsearch internal inference service
-area: Machine Learning
-type: enhancement
-issues: []
diff --git a/docs/changelog/108455.yaml b/docs/changelog/108455.yaml
deleted file mode 100644
index 8397af7b07cf1..0000000000000
--- a/docs/changelog/108455.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108455
-summary: "[ES|QL] Convert string to datetime when the other size of an arithmetic\
- \ operator is `date_period` or `time_duration`"
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/108459.yaml b/docs/changelog/108459.yaml
deleted file mode 100644
index 5e05797f284be..0000000000000
--- a/docs/changelog/108459.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108459
-summary: Do not use global ordinals strategy if the leaf reader context cannot be
- obtained
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/108472.yaml b/docs/changelog/108472.yaml
deleted file mode 100644
index 82481e4edec3a..0000000000000
--- a/docs/changelog/108472.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108472
-summary: Add support for Azure AI Studio embeddings and completions to the inference service.
-area: Machine Learning
-type: feature
-issues: []
diff --git a/docs/changelog/108517.yaml b/docs/changelog/108517.yaml
deleted file mode 100644
index 359c8302fdf6c..0000000000000
--- a/docs/changelog/108517.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108517
-summary: Forward `indexServiceSafe` exception to listener
-area: Transform
-type: bug
-issues:
- - 108418
diff --git a/docs/changelog/108521.yaml b/docs/changelog/108521.yaml
deleted file mode 100644
index adc7c11a4decd..0000000000000
--- a/docs/changelog/108521.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108521
-summary: Adding override for lintian false positive on `libvec.so`
-area: "Packaging"
-type: bug
-issues:
- - 108514
diff --git a/docs/changelog/108522.yaml b/docs/changelog/108522.yaml
deleted file mode 100644
index 5bc064d7995e9..0000000000000
--- a/docs/changelog/108522.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108522
-summary: Ensure we return non-negative scores when scoring scalar dot-products
-area: Vector Search
-type: bug
-issues: []
diff --git a/docs/changelog/108537.yaml b/docs/changelog/108537.yaml
deleted file mode 100644
index 1c0228a71d449..0000000000000
--- a/docs/changelog/108537.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108537
-summary: Limit the value in prefix query
-area: Search
-type: enhancement
-issues:
- - 108486
diff --git a/docs/changelog/108538.yaml b/docs/changelog/108538.yaml
deleted file mode 100644
index 10ae49f0c1670..0000000000000
--- a/docs/changelog/108538.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108538
-summary: Adding RankFeature search phase implementation
-area: Search
-type: feature
-issues: []
diff --git a/docs/changelog/108574.yaml b/docs/changelog/108574.yaml
deleted file mode 100644
index b3c957721e01e..0000000000000
--- a/docs/changelog/108574.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108574
-summary: "[ESQL] CBRT function"
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/108602.yaml b/docs/changelog/108602.yaml
deleted file mode 100644
index d544c89980123..0000000000000
--- a/docs/changelog/108602.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108602
-summary: "[Inference API] Extract optional long instead of integer in `RateLimitSettings#of`"
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/108606.yaml b/docs/changelog/108606.yaml
deleted file mode 100644
index 04780bff58800..0000000000000
--- a/docs/changelog/108606.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-pr: 108606
-summary: "Extend ISO8601 datetime parser to specify forbidden fields, allowing it to be used\
- \ on more formats"
-area: Infra/Core
-type: enhancement
-issues: []
-highlight:
- title: New custom parser for more ISO-8601 date formats
- body: |-
- 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.
diff --git a/docs/changelog/108607.yaml b/docs/changelog/108607.yaml
deleted file mode 100644
index 9ad4cf91e67b9..0000000000000
--- a/docs/changelog/108607.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108607
-summary: Specify parse index when error occurs on multiple datetime parses
-area: Infra/Core
-type: bug
-issues: []
diff --git a/docs/changelog/108612.yaml b/docs/changelog/108612.yaml
deleted file mode 100644
index 7a3dfa2b7ba44..0000000000000
--- a/docs/changelog/108612.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108612
-summary: "[Connector API] Change `UpdateConnectorFiltering` API to have better defaults"
-area: Application
-type: enhancement
-issues: []
diff --git a/docs/changelog/108624.yaml b/docs/changelog/108624.yaml
deleted file mode 100644
index 0da1fd2902c03..0000000000000
--- a/docs/changelog/108624.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-pr: 108624
-summary: Disallow new rollup jobs in clusters with no rollup usage
-area: Rollup
-type: breaking
-issues:
- - 108381
-breaking:
- title: Disallow new rollup jobs in clusters with no rollup usage
- area: Rollup
- details: The put rollup API will fail with an error when a rollup job is created in a cluster with no rollup usage
- impact: Clusters with no rollup usage (either no rollup job or index) can not create new rollup jobs
- notable: true
diff --git a/docs/changelog/108639.yaml b/docs/changelog/108639.yaml
deleted file mode 100644
index e4964cbeb0285..0000000000000
--- a/docs/changelog/108639.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108639
-summary: Add support for the 'Domain' database to the geoip processor
-area: Ingest Node
-type: enhancement
-issues: []
diff --git a/docs/changelog/108643.yaml b/docs/changelog/108643.yaml
deleted file mode 100644
index f71a943673326..0000000000000
--- a/docs/changelog/108643.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108643
-summary: Use `scheduleUnlessShuttingDown` in `LeaderChecker`
-area: Cluster Coordination
-type: bug
-issues:
- - 108642
diff --git a/docs/changelog/108651.yaml b/docs/changelog/108651.yaml
deleted file mode 100644
index 227c464909d50..0000000000000
--- a/docs/changelog/108651.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108651
-summary: Add support for the 'ISP' database to the geoip processor
-area: Ingest Node
-type: enhancement
-issues: []
diff --git a/docs/changelog/108672.yaml b/docs/changelog/108672.yaml
deleted file mode 100644
index e1261fcf6f232..0000000000000
--- a/docs/changelog/108672.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108672
-summary: Add bounds checking to parsing ISO8601 timezone offset values
-area: Infra/Core
-type: bug
-issues: []
diff --git a/docs/changelog/108679.yaml b/docs/changelog/108679.yaml
deleted file mode 100644
index 62cd82a52c5bb..0000000000000
--- a/docs/changelog/108679.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108679
-summary: Suppress deprecation warnings from ingest pipelines when deleting trained model
-area: Machine Learning
-type: bug
-issues:
- - 105004
diff --git a/docs/changelog/108682.yaml b/docs/changelog/108682.yaml
deleted file mode 100644
index bd566acab8306..0000000000000
--- a/docs/changelog/108682.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108682
-summary: Adding support for explain in rrf
-area: Search
-type: enhancement
-issues: []
diff --git a/docs/changelog/108683.yaml b/docs/changelog/108683.yaml
deleted file mode 100644
index b9e7df5fefc18..0000000000000
--- a/docs/changelog/108683.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-pr: 108683
-summary: Add support for the 'Connection Type' database to the geoip processor
-area: Ingest Node
-type: enhancement
-issues: []
-highlight:
- title: "Preview: Support for the 'Connection Type, 'Domain', and 'ISP' databases in the geoip processor"
- body: |-
- 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.
diff --git a/docs/changelog/108684.yaml b/docs/changelog/108684.yaml
deleted file mode 100644
index 91684d2998be6..0000000000000
--- a/docs/changelog/108684.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108684
-summary: Check if `CsvTests` required capabilities exist
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/108687.yaml b/docs/changelog/108687.yaml
deleted file mode 100644
index 771516d551567..0000000000000
--- a/docs/changelog/108687.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108687
-summary: Adding `user_type` support for the enterprise database for the geoip processor
-area: Ingest Node
-type: enhancement
-issues: []
diff --git a/docs/changelog/108693.yaml b/docs/changelog/108693.yaml
deleted file mode 100644
index ee701e0f57736..0000000000000
--- a/docs/changelog/108693.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108693
-summary: Test pipeline run after reroute
-area: Ingest Node
-type: enhancement
-issues: []
diff --git a/docs/changelog/108705.yaml b/docs/changelog/108705.yaml
deleted file mode 100644
index fd08734831018..0000000000000
--- a/docs/changelog/108705.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108705
-summary: Associate restore snapshot task to parent mount task
-area: Distributed
-type: bug
-issues:
- - 105830
diff --git a/docs/changelog/108713.yaml b/docs/changelog/108713.yaml
deleted file mode 100644
index d6b1ddabd6c1e..0000000000000
--- a/docs/changelog/108713.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108713
-summary: Rewrite away type converting functions that do not convert types
-area: ES|QL
-type: enhancement
-issues:
- - 107716
diff --git a/docs/changelog/108726.yaml b/docs/changelog/108726.yaml
deleted file mode 100644
index 2e800a45e6975..0000000000000
--- a/docs/changelog/108726.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108726
-summary: Allow RA metrics to be reported upon parsing completed or accumulated
-area: Infra/Metrics
-type: enhancement
-issues: []
diff --git a/docs/changelog/108733.yaml b/docs/changelog/108733.yaml
deleted file mode 100644
index 76a969219ea4c..0000000000000
--- a/docs/changelog/108733.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108733
-summary: Query Roles API
-area: Security
-type: feature
-issues: []
diff --git a/docs/changelog/108746.yaml b/docs/changelog/108746.yaml
deleted file mode 100644
index 93ed917f3b56e..0000000000000
--- a/docs/changelog/108746.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108746
-summary: Support synthetic source for `aggregate_metric_double` when ignore_malf…
-area: Mapping
-type: feature
-issues: []
diff --git a/docs/changelog/108759.yaml b/docs/changelog/108759.yaml
deleted file mode 100644
index dfc2b30fe6c57..0000000000000
--- a/docs/changelog/108759.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108759
-summary: Expose `?master_timeout` in autoscaling APIs
-area: Autoscaling
-type: bug
-issues: []
diff --git a/docs/changelog/108761.yaml b/docs/changelog/108761.yaml
deleted file mode 100644
index 92aa67ebe0bfe..0000000000000
--- a/docs/changelog/108761.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108761
-summary: Add some missing timeout params to REST API specs
-area: Infra/REST API
-type: bug
-issues: []
diff --git a/docs/changelog/108764.yaml b/docs/changelog/108764.yaml
deleted file mode 100644
index 94de27eb52c9b..0000000000000
--- a/docs/changelog/108764.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108764
-summary: ST_DISTANCE Function
-area: ES|QL
-type: enhancement
-issues:
- - 108212
diff --git a/docs/changelog/108780.yaml b/docs/changelog/108780.yaml
deleted file mode 100644
index 40e66326e6b9b..0000000000000
--- a/docs/changelog/108780.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108780
-summary: Add `continent_code` support to the geoip processor
-area: Ingest Node
-type: enhancement
-issues:
- - 85820
diff --git a/docs/changelog/108786.yaml b/docs/changelog/108786.yaml
deleted file mode 100644
index 1c07a3ceac900..0000000000000
--- a/docs/changelog/108786.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108786
-summary: Make ingest byte stat names more descriptive
-area: Ingest Node
-type: enhancement
-issues: []
diff --git a/docs/changelog/108793.yaml b/docs/changelog/108793.yaml
deleted file mode 100644
index 87668c8ee009b..0000000000000
--- a/docs/changelog/108793.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108793
-summary: Add `SparseVectorStats`
-area: Search
-type: enhancement
-issues: []
diff --git a/docs/changelog/108796.yaml b/docs/changelog/108796.yaml
deleted file mode 100644
index 808247cf347d9..0000000000000
--- a/docs/changelog/108796.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108796
-summary: Return ingest byte stats even when 0-valued
-area: Ingest Node
-type: enhancement
-issues: []
diff --git a/docs/changelog/108814.yaml b/docs/changelog/108814.yaml
deleted file mode 100644
index 94298838c372e..0000000000000
--- a/docs/changelog/108814.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108814
-summary: Deserialize publish requests on generic thread-pool
-area: Cluster Coordination
-type: bug
-issues:
- - 106352
diff --git a/docs/changelog/108818.yaml b/docs/changelog/108818.yaml
deleted file mode 100644
index ed60fb5f64abd..0000000000000
--- a/docs/changelog/108818.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108818
-summary: Store source for nested objects
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/108820.yaml b/docs/changelog/108820.yaml
deleted file mode 100644
index 55045ffce3dfa..0000000000000
--- a/docs/changelog/108820.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108820
-summary: Allow `LuceneSourceOperator` to early terminate
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/108822.yaml b/docs/changelog/108822.yaml
deleted file mode 100644
index 8cec4da5dbc7f..0000000000000
--- a/docs/changelog/108822.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108822
-summary: Update ASM to 9.7 for plugin scanner
-area: Infra/Plugins
-type: upgrade
-issues:
- - 108776
diff --git a/docs/changelog/108831.yaml b/docs/changelog/108831.yaml
deleted file mode 100644
index 496bc0108f9d2..0000000000000
--- a/docs/changelog/108831.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108831
-summary: Rename rule query and add support for multiple rulesets
-area: Application
-type: enhancement
-issues: [ ]
diff --git a/docs/changelog/108849.yaml b/docs/changelog/108849.yaml
deleted file mode 100644
index 7c503efe9187b..0000000000000
--- a/docs/changelog/108849.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108849
-summary: "[Osquery] Extend `kibana_system` role with an access to new `osquery_manager`\
- \ index"
-area: Authorization
-type: enhancement
-issues: []
diff --git a/docs/changelog/108856.yaml b/docs/changelog/108856.yaml
deleted file mode 100644
index 9b8f42248a442..0000000000000
--- a/docs/changelog/108856.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108856
-summary: Return noop instance `DocSizeObserver` for updates with scripts
-area: Infra/Metrics
-type: enhancement
-issues: []
diff --git a/docs/changelog/108860.yaml b/docs/changelog/108860.yaml
deleted file mode 100644
index 93aa8ce7c08ff..0000000000000
--- a/docs/changelog/108860.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108860
-summary: "Apm-data: enable plugin by default"
-area: Data streams
-type: enhancement
-issues: []
diff --git a/docs/changelog/108862.yaml b/docs/changelog/108862.yaml
deleted file mode 100644
index ddba15f11e8f5..0000000000000
--- a/docs/changelog/108862.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108862
-summary: "Apm-data: set codec: best_compression for logs-apm.* data streams"
-area: Data streams
-type: enhancement
-issues: []
diff --git a/docs/changelog/108868.yaml b/docs/changelog/108868.yaml
deleted file mode 100644
index d0643f056cce8..0000000000000
--- a/docs/changelog/108868.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108868
-summary: GA the update trained model action
-area: Machine Learning
-type: enhancement
-issues: []
diff --git a/docs/changelog/108870.yaml b/docs/changelog/108870.yaml
deleted file mode 100644
index 435eea9845f16..0000000000000
--- a/docs/changelog/108870.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108870
-summary: Adding score from `RankDoc` to `SearchHit`
-area: Search
-type: bug
-issues: []
diff --git a/docs/changelog/108871.yaml b/docs/changelog/108871.yaml
deleted file mode 100644
index 46bf8ca9d8404..0000000000000
--- a/docs/changelog/108871.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108871
-summary: "Reapply \"ESQL: Expose \"_ignored\" metadata field\""
-area: ES|QL
-type: feature
-issues: []
diff --git a/docs/changelog/108878.yaml b/docs/changelog/108878.yaml
deleted file mode 100644
index 1a8127869a647..0000000000000
--- a/docs/changelog/108878.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108878
-summary: Support arrays in fallback synthetic source implementation
-area: Mapping
-type: feature
-issues: []
diff --git a/docs/changelog/108881.yaml b/docs/changelog/108881.yaml
deleted file mode 100644
index b6de1129cfa03..0000000000000
--- a/docs/changelog/108881.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108881
-summary: Add synthetic source support for `geo_shape` via fallback implementation
-area: Mapping
-type: feature
-issues: []
diff --git a/docs/changelog/108885.yaml b/docs/changelog/108885.yaml
deleted file mode 100644
index c66843e082e29..0000000000000
--- a/docs/changelog/108885.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108885
-summary: "Apm-data: increase priority above Fleet templates"
-area: Data streams
-type: enhancement
-issues: []
diff --git a/docs/changelog/108886.yaml b/docs/changelog/108886.yaml
deleted file mode 100644
index 18df59e577713..0000000000000
--- a/docs/changelog/108886.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108886
-summary: Expose `?master_timeout` on get-shutdown API
-area: Infra/Node Lifecycle
-type: bug
-issues: []
diff --git a/docs/changelog/108891.yaml b/docs/changelog/108891.yaml
deleted file mode 100644
index 8282b616b34a9..0000000000000
--- a/docs/changelog/108891.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108891
-summary: Fix NPE during destination index creation
-area: Transform
-type: bug
-issues:
- - 108890
diff --git a/docs/changelog/108895.yaml b/docs/changelog/108895.yaml
deleted file mode 100644
index 15293896b20c5..0000000000000
--- a/docs/changelog/108895.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108895
-summary: Add permission to secure access to certain config files specified by settings
-area: "Security"
-type: bug
-issues: []
diff --git a/docs/changelog/108896.yaml b/docs/changelog/108896.yaml
deleted file mode 100644
index c52f074b65605..0000000000000
--- a/docs/changelog/108896.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 108896
-summary: Introduce `logs` index mode as Tech Preview
-area: Logs
-type: feature
-issues:
- - 108896
diff --git a/docs/changelog/108911.yaml b/docs/changelog/108911.yaml
deleted file mode 100644
index 8832e01f7426e..0000000000000
--- a/docs/changelog/108911.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108911
-summary: Store source for fields in objects with `dynamic` override
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/108942.yaml b/docs/changelog/108942.yaml
deleted file mode 100644
index c58b06a92cee8..0000000000000
--- a/docs/changelog/108942.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108942
-summary: Fix NPE in trained model assignment updater
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/108947.yaml b/docs/changelog/108947.yaml
deleted file mode 100644
index 8aa4293242985..0000000000000
--- a/docs/changelog/108947.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108947
-summary: Provide the `DocumentSizeReporter` with index mode
-area: Infra/Metrics
-type: enhancement
-issues: []
diff --git a/docs/changelog/108999.yaml b/docs/changelog/108999.yaml
deleted file mode 100644
index 089d765b4e2d0..0000000000000
--- a/docs/changelog/108999.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 108999
-summary: Use default translog durability on AD results index
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/109007.yaml b/docs/changelog/109007.yaml
deleted file mode 100644
index c828db64220fb..0000000000000
--- a/docs/changelog/109007.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109007
-summary: Multivalue Sparse Vector Support
-area: Search
-type: enhancement
-issues: []
diff --git a/docs/changelog/109025.yaml b/docs/changelog/109025.yaml
deleted file mode 100644
index 38d19cab13d30..0000000000000
--- a/docs/changelog/109025.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109025
-summary: Introduce a setting controlling the activation of the `logs` index mode in logs@settings
-area: Logs
-type: feature
-issues:
- - 108762
diff --git a/docs/changelog/109042.yaml b/docs/changelog/109042.yaml
deleted file mode 100644
index 5aa80db991c0d..0000000000000
--- a/docs/changelog/109042.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109042
-summary: Add Create or update query rule API call
-area: Application
-type: enhancement
-issues: [ ]
diff --git a/docs/changelog/109043.yaml b/docs/changelog/109043.yaml
deleted file mode 100644
index bdfe3addea8e9..0000000000000
--- a/docs/changelog/109043.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109043
-summary: "Apm-data: set concrete values for `metricset.interval`"
-area: Data streams
-type: bug
-issues: []
diff --git a/docs/changelog/109044.yaml b/docs/changelog/109044.yaml
deleted file mode 100644
index 9e50c377606a0..0000000000000
--- a/docs/changelog/109044.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109044
-summary: Enable fallback synthetic source for `token_count`
-area: Mapping
-type: feature
-issues: []
diff --git a/docs/changelog/109047.yaml b/docs/changelog/109047.yaml
deleted file mode 100644
index 85a8808353a08..0000000000000
--- a/docs/changelog/109047.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109047
-summary: Prevent concurrent jobs during cleanup
-area: Transform
-type: bug
-issues: []
diff --git a/docs/changelog/109070.yaml b/docs/changelog/109070.yaml
deleted file mode 100644
index 8dbc0ec1c6cf2..0000000000000
--- a/docs/changelog/109070.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109070
-summary: "ESQL: Add `ip_prefix` function"
-area: ES|QL
-type: feature
-issues:
- - 99064
diff --git a/docs/changelog/109071.yaml b/docs/changelog/109071.yaml
deleted file mode 100644
index 275a5433cc1d8..0000000000000
--- a/docs/changelog/109071.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109071
-summary: Better handling of multiple rescorers clauses with LTR
-area: "Search"
-type: bug
-issues: []
diff --git a/docs/changelog/109078.yaml b/docs/changelog/109078.yaml
deleted file mode 100644
index f602ee9b131bc..0000000000000
--- a/docs/changelog/109078.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109078
-summary: Expose API Key cache metrics
-area: Authentication
-type: enhancement
-issues: []
diff --git a/docs/changelog/109084.yaml b/docs/changelog/109084.yaml
deleted file mode 100644
index 67ff5610c5a66..0000000000000
--- a/docs/changelog/109084.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109084
-summary: Add AVX-512 optimised vector distance functions for int7 on x64
-area: Search
-type: enhancement
-issues: []
diff --git a/docs/changelog/109104.yaml b/docs/changelog/109104.yaml
deleted file mode 100644
index 985cf14bc5952..0000000000000
--- a/docs/changelog/109104.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109104
-summary: Offload request to generic threadpool
-area: Machine Learning
-type: bug
-issues:
- - 109100
diff --git a/docs/changelog/109123.yaml b/docs/changelog/109123.yaml
deleted file mode 100644
index dfd7e52b33e7f..0000000000000
--- a/docs/changelog/109123.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109123
-summary: "[Inference API] Check for related pipelines on delete inference endpoint"
-area: Machine Learning
-type: enhancement
-issues: []
diff --git a/docs/changelog/109126.yaml b/docs/changelog/109126.yaml
deleted file mode 100644
index 248eacc76b65c..0000000000000
--- a/docs/changelog/109126.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109126
-summary: Correctly handle duplicate model ids for the `_cat` trained models api and usage statistics
-area: Machine Learning
-type: bug
-issues: [ ]
diff --git a/docs/changelog/109167.yaml b/docs/changelog/109167.yaml
deleted file mode 100644
index e366b2302263c..0000000000000
--- a/docs/changelog/109167.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109167
-summary: Fixes cluster state-based role mappings not recovered from disk
-area: Authorization
-type: bug
-issues: []
diff --git a/docs/changelog/109174.yaml b/docs/changelog/109174.yaml
deleted file mode 100644
index 5cd57ebd34ac6..0000000000000
--- a/docs/changelog/109174.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109174
-summary: "ESQL: Change \"substring\" function to not return null on empty string"
-area: ES|QL
-type: bug
-issues: []
diff --git a/docs/changelog/109185.yaml b/docs/changelog/109185.yaml
deleted file mode 100644
index 4da72c4b20ffb..0000000000000
--- a/docs/changelog/109185.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109185
-summary: Handle unmatching remote cluster wildcards properly for `IndicesRequest.SingleIndexNoWildcards`
- requests
-area: Authorization
-type: bug
-issues: []
diff --git a/docs/changelog/109194.yaml b/docs/changelog/109194.yaml
deleted file mode 100644
index bf50139547f62..0000000000000
--- a/docs/changelog/109194.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109194
-summary: "[Inference API] Add Mistral Embeddings Support to Inference API"
-area: Machine Learning
-type: enhancement
-issues: [ ]
diff --git a/docs/changelog/109196.yaml b/docs/changelog/109196.yaml
deleted file mode 100644
index 7f5ca3efbc8d4..0000000000000
--- a/docs/changelog/109196.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109196
-summary: Handle nullable `DocsStats` and `StoresStats`
-area: Distributed
-type: bug
-issues: []
diff --git a/docs/changelog/109204.yaml b/docs/changelog/109204.yaml
deleted file mode 100644
index b5b22ef1a06f9..0000000000000
--- a/docs/changelog/109204.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109204
-summary: Detect long-running tasks on network threads
-area: Network
-type: enhancement
-issues: []
diff --git a/docs/changelog/109205.yaml b/docs/changelog/109205.yaml
deleted file mode 100644
index 10f13a6549fbc..0000000000000
--- a/docs/changelog/109205.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109205
-summary: "ESQL: Fix `IpPrefix` function not handling correctly `ByteRefs`"
-area: ES|QL
-type: bug
-issues:
- - 109198
diff --git a/docs/changelog/109219.yaml b/docs/changelog/109219.yaml
deleted file mode 100644
index abf4f49235166..0000000000000
--- a/docs/changelog/109219.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-pr: 109219
-summary: Update Lucene version to 9.11
-area: Search
-type: feature
-issues: []
-highlight:
- title: "Update Elasticsearch to Lucene 9.11"
- body: |-
- 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
diff --git a/docs/changelog/109220.yaml b/docs/changelog/109220.yaml
deleted file mode 100644
index b8efa8f784d7a..0000000000000
--- a/docs/changelog/109220.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109220
-summary: "ESQL: add REPEAT string function"
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/109233.yaml b/docs/changelog/109233.yaml
deleted file mode 100644
index 36010273c80db..0000000000000
--- a/docs/changelog/109233.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109233
-summary: Fix trappy timeouts in security settings APIs
-area: Security
-type: bug
-issues: []
diff --git a/docs/changelog/109236.yaml b/docs/changelog/109236.yaml
deleted file mode 100644
index e2eb917ea0343..0000000000000
--- a/docs/changelog/109236.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109236
-summary: Use proper executor for failing requests when connection closes
-area: Network
-type: bug
-issues:
- - 109225
diff --git a/docs/changelog/109240.yaml b/docs/changelog/109240.yaml
deleted file mode 100644
index a9fad3abdc47f..0000000000000
--- a/docs/changelog/109240.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109240
-summary: Fix trappy timeout in allocation explain API
-area: Allocation
-type: bug
-issues: []
diff --git a/docs/changelog/109241.yaml b/docs/changelog/109241.yaml
deleted file mode 100644
index b7343b9df1841..0000000000000
--- a/docs/changelog/109241.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109241
-summary: Fix misc trappy allocation API timeouts
-area: Allocation
-type: bug
-issues: []
diff --git a/docs/changelog/109256.yaml b/docs/changelog/109256.yaml
deleted file mode 100644
index 30c15ed77f9b9..0000000000000
--- a/docs/changelog/109256.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-pr: 109256
-summary: "[ESQL] Migrate `SimplifyComparisonArithmetics` optimization"
-area: ES|QL
-type: bug
-issues:
- - 108388
- - 108743
diff --git a/docs/changelog/109312.yaml b/docs/changelog/109312.yaml
deleted file mode 100644
index 594d3f90e8fd1..0000000000000
--- a/docs/changelog/109312.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109312
-summary: Enable fallback synthetic source for `point` and `shape`
-area: Mapping
-type: feature
-issues: []
diff --git a/docs/changelog/109317.yaml b/docs/changelog/109317.yaml
deleted file mode 100644
index 1d8595d99c2a6..0000000000000
--- a/docs/changelog/109317.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-pr: 109317
-summary: Add new int4 quantization to dense_vector
-area: Search
-type: feature
-issues: []
-highlight:
- title: Add new int4 quantization to dense_vector
- body: |-
- 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.
- notable: true
-
diff --git a/docs/changelog/109332.yaml b/docs/changelog/109332.yaml
deleted file mode 100644
index 3d03523fd518b..0000000000000
--- a/docs/changelog/109332.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109332
-summary: "ES|QL: vectorize eval"
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/109341.yaml b/docs/changelog/109341.yaml
deleted file mode 100644
index 0c1eaa98a8aa2..0000000000000
--- a/docs/changelog/109341.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109341
-summary: Re-define `index.mapper.dynamic` setting in 8.x for a better 7.x to 8.x upgrade if this setting is used.
-area: Mapping
-type: bug
-issues: []
diff --git a/docs/changelog/109358.yaml b/docs/changelog/109358.yaml
deleted file mode 100644
index af47b4129d874..0000000000000
--- a/docs/changelog/109358.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109358
-summary: Use the multi node routing action for internal inference services
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/109359.yaml b/docs/changelog/109359.yaml
deleted file mode 100644
index 37202eb5a28ec..0000000000000
--- a/docs/changelog/109359.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109359
-summary: Adding hamming distance function to painless for `dense_vector` fields
-area: Vector Search
-type: enhancement
-issues: []
diff --git a/docs/changelog/109370.yaml b/docs/changelog/109370.yaml
deleted file mode 100644
index 32b190d1a1c94..0000000000000
--- a/docs/changelog/109370.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109370
-summary: Enable fallback synthetic source by default
-area: Mapping
-type: feature
-issues:
- - 106460
diff --git a/docs/changelog/109384.yaml b/docs/changelog/109384.yaml
deleted file mode 100644
index 303da23d57d8e..0000000000000
--- a/docs/changelog/109384.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109384
-summary: Fix serialising inference delete response
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/109386.yaml b/docs/changelog/109386.yaml
deleted file mode 100644
index 984ee96dde063..0000000000000
--- a/docs/changelog/109386.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109386
-summary: "ESQL: `top_list` aggregation"
-area: ES|QL
-type: feature
-issues:
- - 109213
diff --git a/docs/changelog/109395.yaml b/docs/changelog/109395.yaml
deleted file mode 100644
index e5336695afa48..0000000000000
--- a/docs/changelog/109395.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109395
-summary: Correct positioning for unique token filter
-area: Analysis
-type: bug
-issues: []
diff --git a/docs/changelog/109410.yaml b/docs/changelog/109410.yaml
deleted file mode 100644
index e8c4dcdab42c6..0000000000000
--- a/docs/changelog/109410.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109410
-summary: Support synthetic source for date fields when `ignore_malformed` is used
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/109444.yaml b/docs/changelog/109444.yaml
deleted file mode 100644
index 8c56fe2dd9f02..0000000000000
--- a/docs/changelog/109444.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109444
-summary: "Aggs: Scripted metric allow list"
-area: Aggregations
-type: enhancement
-issues: []
diff --git a/docs/changelog/109449.yaml b/docs/changelog/109449.yaml
deleted file mode 100644
index 90cb908227f1b..0000000000000
--- a/docs/changelog/109449.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109449
-summary: Reset max page size to settings value
-area: Transform
-type: bug
-issues:
- - 109308
diff --git a/docs/changelog/109462.yaml b/docs/changelog/109462.yaml
deleted file mode 100644
index a05f4a04e80ae..0000000000000
--- a/docs/changelog/109462.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109462
-summary: Add `wait_for_completion` parameter to delete snapshot request
-area: Distributed
-type: enhancement
-issues:
- - 101300
diff --git a/docs/changelog/109470.yaml b/docs/changelog/109470.yaml
deleted file mode 100644
index 837c1664b775a..0000000000000
--- a/docs/changelog/109470.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109470
-summary: Enabling profiling for `RankBuilders` and adding tests for RRF
-area: Ranking
-type: enhancement
-issues: []
diff --git a/docs/changelog/109480.yaml b/docs/changelog/109480.yaml
deleted file mode 100644
index 3a6f48e9bd840..0000000000000
--- a/docs/changelog/109480.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109480
-summary: "[Connector API] Add claim sync job endpoint"
-area: Application
-type: feature
-issues: []
diff --git a/docs/changelog/109481.yaml b/docs/changelog/109481.yaml
deleted file mode 100644
index e8251788a90bd..0000000000000
--- a/docs/changelog/109481.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109481
-summary: Fork freeing search/scroll contexts to GENERIC pool
-area: Search
-type: bug
-issues: []
diff --git a/docs/changelog/109487.yaml b/docs/changelog/109487.yaml
deleted file mode 100644
index c69c77203f12d..0000000000000
--- a/docs/changelog/109487.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109487
-summary: Start Trained Model Deployment API request query params now override body params
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/109492.yaml b/docs/changelog/109492.yaml
deleted file mode 100644
index d4d1e83eb7786..0000000000000
--- a/docs/changelog/109492.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109492
-summary: Add hexstring support byte painless scorers
-area: Search
-type: bug
-issues: []
diff --git a/docs/changelog/109500.yaml b/docs/changelog/109500.yaml
deleted file mode 100644
index cfd6bc770d5d6..0000000000000
--- a/docs/changelog/109500.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109500
-summary: Guard file settings readiness on file settings support
-area: Infra/Settings
-type: bug
-issues: []
diff --git a/docs/changelog/109506.yaml b/docs/changelog/109506.yaml
deleted file mode 100644
index 3a7570ed0b93a..0000000000000
--- a/docs/changelog/109506.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109506
-summary: Support synthetic source for `scaled_float` and `unsigned_long` when `ignore_malformed`
- is used
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/109533.yaml b/docs/changelog/109533.yaml
deleted file mode 100644
index 5720410e5f370..0000000000000
--- a/docs/changelog/109533.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109533
-summary: Fix IndexOutOfBoundsException during inference
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/109534.yaml b/docs/changelog/109534.yaml
deleted file mode 100644
index c6eb520bb70a8..0000000000000
--- a/docs/changelog/109534.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109534
-summary: Propagate accurate deployment timeout
-area: Machine Learning
-type: bug
-issues:
- - 109407
diff --git a/docs/changelog/109540.yaml b/docs/changelog/109540.yaml
deleted file mode 100644
index 722c60a30fb97..0000000000000
--- a/docs/changelog/109540.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109540
-summary: Add metrics@custom component template to metrics-*-* index template
-area: Data streams
-type: enhancement
-issues:
- - 109475
diff --git a/docs/changelog/109551.yaml b/docs/changelog/109551.yaml
deleted file mode 100644
index f4949669091d9..0000000000000
--- a/docs/changelog/109551.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109551
-summary: Avoid `InferenceRunner` deadlock
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/109554.yaml b/docs/changelog/109554.yaml
deleted file mode 100644
index 4e78a8f3044c7..0000000000000
--- a/docs/changelog/109554.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109554
-summary: "[Query Rules] Add API calls to get or delete individual query rules within\
- \ a ruleset"
-area: Relevance
-type: enhancement
-issues: []
diff --git a/docs/changelog/109563.yaml b/docs/changelog/109563.yaml
deleted file mode 100644
index 9099064b6b040..0000000000000
--- a/docs/changelog/109563.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109563
-summary: Add allocation explain output for THROTTLING shards
-area: Infra/Core
-type: enhancement
-issues: []
diff --git a/docs/changelog/109597.yaml b/docs/changelog/109597.yaml
deleted file mode 100644
index 9b99df85da6a3..0000000000000
--- a/docs/changelog/109597.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109597
-summary: Opt `scripted_metric` out of parallelization
-area: Aggregations
-type: feature
-issues: []
diff --git a/docs/changelog/109603.yaml b/docs/changelog/109603.yaml
deleted file mode 100644
index 2d6e8b94aa8d0..0000000000000
--- a/docs/changelog/109603.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109603
-summary: Update translog `writeLocation` for `flushListener` after commit
-area: Engine
-type: enhancement
-issues: []
diff --git a/docs/changelog/109606.yaml b/docs/changelog/109606.yaml
deleted file mode 100644
index 6c9089c4c4fde..0000000000000
--- a/docs/changelog/109606.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109606
-summary: Avoid NPE if `users_roles` file does not exist
-area: Authentication
-type: bug
-issues: []
diff --git a/docs/changelog/109613.yaml b/docs/changelog/109613.yaml
deleted file mode 100644
index 21d152ac1d6de..0000000000000
--- a/docs/changelog/109613.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109613
-summary: Consider `error_trace` supported by all endpoints
-area: Infra/REST API
-type: bug
-issues:
- - 109612
diff --git a/docs/changelog/109618.yaml b/docs/changelog/109618.yaml
deleted file mode 100644
index f28bb15a53d96..0000000000000
--- a/docs/changelog/109618.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109618
-summary: Fail cluster state API if blocked
-area: Cluster Coordination
-type: bug
-issues:
- - 107503
diff --git a/docs/changelog/109629.yaml b/docs/changelog/109629.yaml
deleted file mode 100644
index c468388117b72..0000000000000
--- a/docs/changelog/109629.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109629
-summary: "[Data streams] Fix the description of the lazy rollover task"
-area: Data streams
-type: bug
-issues: []
diff --git a/docs/changelog/109632.yaml b/docs/changelog/109632.yaml
deleted file mode 100644
index 6b04160bbdbec..0000000000000
--- a/docs/changelog/109632.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109632
-summary: Force execute inactive sink reaper
-area: ES|QL
-type: bug
-issues: []
diff --git a/docs/changelog/109634.yaml b/docs/changelog/109634.yaml
deleted file mode 100644
index 4c6358578b6de..0000000000000
--- a/docs/changelog/109634.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109634
-summary: "[Query Rules] Require Enterprise License for Query Rules"
-area: Relevance
-type: enhancement
-issues: []
diff --git a/docs/changelog/109636.yaml b/docs/changelog/109636.yaml
deleted file mode 100644
index f8f73a75dfd3d..0000000000000
--- a/docs/changelog/109636.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109636
-summary: "Ensure a lazy rollover request will rollover the target data stream once."
-area: Data streams
-type: bug
-issues: []
diff --git a/docs/changelog/109651.yaml b/docs/changelog/109651.yaml
deleted file mode 100644
index 982e6a5b536cc..0000000000000
--- a/docs/changelog/109651.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109651
-summary: Support synthetic source for `geo_point` when `ignore_malformed` is used
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/109653.yaml b/docs/changelog/109653.yaml
deleted file mode 100644
index 665163ec2a91b..0000000000000
--- a/docs/changelog/109653.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109653
-summary: Handle the "JSON memory allocator bytes" field
-area: Machine Learning
-type: enhancement
-issues: []
diff --git a/docs/changelog/109657.yaml b/docs/changelog/109657.yaml
deleted file mode 100644
index 35b315b7568c9..0000000000000
--- a/docs/changelog/109657.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109657
-summary: Track `RequestedRangeNotSatisfiedException` separately in S3 Metrics
-area: Snapshot/Restore
-type: enhancement
-issues: []
diff --git a/docs/changelog/109672.yaml b/docs/changelog/109672.yaml
deleted file mode 100644
index bb6532ab7accf..0000000000000
--- a/docs/changelog/109672.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109672
-summary: Log repo UUID at generation/registration time
-area: Snapshot/Restore
-type: enhancement
-issues: []
diff --git a/docs/changelog/109695.yaml b/docs/changelog/109695.yaml
deleted file mode 100644
index f922b76412676..0000000000000
--- a/docs/changelog/109695.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109695
-summary: Fix ESQL cancellation for exchange requests
-area: ES|QL
-type: bug
-issues: []
diff --git a/docs/changelog/109717.yaml b/docs/changelog/109717.yaml
deleted file mode 100644
index 326657ea4ce21..0000000000000
--- a/docs/changelog/109717.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109717
-summary: Bump jackson version in modules:repository-azure
-area: Snapshot/Restore
-type: upgrade
-issues: []
diff --git a/docs/changelog/109720.yaml b/docs/changelog/109720.yaml
deleted file mode 100644
index b029726c84427..0000000000000
--- a/docs/changelog/109720.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109720
-summary: "DocsStats: Add human readable bytesize"
-area: Stats
-type: enhancement
-issues: []
diff --git a/docs/changelog/109746.yaml b/docs/changelog/109746.yaml
deleted file mode 100644
index 5360f545333ac..0000000000000
--- a/docs/changelog/109746.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109746
-summary: ES|QL Add primitive float support to the Compute Engine
-area: ES|QL
-type: enhancement
-issues:
- - 109178
diff --git a/docs/changelog/109779.yaml b/docs/changelog/109779.yaml
deleted file mode 100644
index 4ccd8d475ec8d..0000000000000
--- a/docs/changelog/109779.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109779
-summary: Include component templates in retention validaiton
-area: Data streams
-type: bug
-issues: []
diff --git a/docs/changelog/109781.yaml b/docs/changelog/109781.yaml
deleted file mode 100644
index df74645b53d84..0000000000000
--- a/docs/changelog/109781.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109781
-summary: ES|QL Add primitive float variants of all aggregators to the compute engine
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/109794.yaml b/docs/changelog/109794.yaml
deleted file mode 100644
index d244c69a903ba..0000000000000
--- a/docs/changelog/109794.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109794
-summary: Provide document size reporter with `MapperService`
-area: Infra/Metrics
-type: bug
-issues: []
diff --git a/docs/changelog/109807.yaml b/docs/changelog/109807.yaml
deleted file mode 100644
index 5cf8a2c896c4e..0000000000000
--- a/docs/changelog/109807.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109807
-summary: "ESQL: Fix LOOKUP attribute shadowing"
-area: ES|QL
-type: bug
-issues:
- - 109392
diff --git a/docs/changelog/109813.yaml b/docs/changelog/109813.yaml
deleted file mode 100644
index edcef17e87606..0000000000000
--- a/docs/changelog/109813.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109813
-summary: Add text similarity reranker retriever
-area: Ranking
-type: feature
-issues: []
diff --git a/docs/changelog/109824.yaml b/docs/changelog/109824.yaml
deleted file mode 100644
index 987e8c0a8b1a2..0000000000000
--- a/docs/changelog/109824.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109824
-summary: Check array size before returning array item in script doc values
-area: Infra/Scripting
-type: bug
-issues:
- - 104998
diff --git a/docs/changelog/109848.yaml b/docs/changelog/109848.yaml
deleted file mode 100644
index 858bbe84ef3a4..0000000000000
--- a/docs/changelog/109848.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109848
-summary: Denser in-memory representation of `ShardBlobsToDelete`
-area: Snapshot/Restore
-type: enhancement
-issues: []
diff --git a/docs/changelog/109850.yaml b/docs/changelog/109850.yaml
deleted file mode 100644
index 0f11318765aea..0000000000000
--- a/docs/changelog/109850.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109850
-summary: Ensure tasks preserve versions in `MasterService`
-area: Cluster Coordination
-type: bug
-issues: []
diff --git a/docs/changelog/109873.yaml b/docs/changelog/109873.yaml
deleted file mode 100644
index c77197cc22d0a..0000000000000
--- a/docs/changelog/109873.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109873
-summary: "ESQL: add Arrow dataframes output format"
-area: ES|QL
-type: feature
-issues: []
diff --git a/docs/changelog/109876.yaml b/docs/changelog/109876.yaml
deleted file mode 100644
index 4a65b4e17c4a3..0000000000000
--- a/docs/changelog/109876.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109876
-summary: Always pick the user `maxPageSize` value
-area: Transform
-type: bug
-issues:
- - 109844
diff --git a/docs/changelog/109880.yaml b/docs/changelog/109880.yaml
deleted file mode 100644
index 71c7209824a8a..0000000000000
--- a/docs/changelog/109880.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-pr: 109880
-summary: Deprecate `text_expansion` and `weighted_tokens` queries
-area: Machine Learning
-type: deprecation
-issues: [ ]
-deprecation:
- title: Deprecate `text_expansion` and `weighted_tokens` queries
- area: REST API
- details: The `text_expansion` and `weighted_tokens` queries have been replaced by `sparse_vector`.
- impact: Please update your existing `text_expansion` and `weighted_tokens` queries to use `sparse_vector.`
diff --git a/docs/changelog/109882.yaml b/docs/changelog/109882.yaml
deleted file mode 100644
index 0f0fed01c5a7a..0000000000000
--- a/docs/changelog/109882.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109882
-summary: Support synthetic source together with `ignore_malformed` in histogram fields
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/109893.yaml b/docs/changelog/109893.yaml
deleted file mode 100644
index df6d6e51236c8..0000000000000
--- a/docs/changelog/109893.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109893
-summary: Add Anthropic messages integration to Inference API
-area: Machine Learning
-type: enhancement
-issues: [ ]
diff --git a/docs/changelog/109908.yaml b/docs/changelog/109908.yaml
deleted file mode 100644
index cdf2acf17096c..0000000000000
--- a/docs/changelog/109908.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109908
-summary: "Update checkpoints after post-replication actions, even on failure"
-area: CRUD
-type: bug
-issues: []
diff --git a/docs/changelog/109931.yaml b/docs/changelog/109931.yaml
deleted file mode 100644
index 3575cfd49176f..0000000000000
--- a/docs/changelog/109931.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109931
-summary: Apply FLS to the contents of `IgnoredSourceFieldMapper`
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/109948.yaml b/docs/changelog/109948.yaml
deleted file mode 100644
index 3f5a281781bcf..0000000000000
--- a/docs/changelog/109948.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109948
-summary: Automatically adjust `ignore_malformed` only for the @timestamp
-area: Mapping
-type: bug
-issues: []
diff --git a/docs/changelog/109957.yaml b/docs/changelog/109957.yaml
deleted file mode 100644
index 6bbcd8175501c..0000000000000
--- a/docs/changelog/109957.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109957
-summary: Add request metric to `RestController` to track success/failure (by status
- code)
-area: Infra/Metrics
-type: enhancement
-issues: []
diff --git a/docs/changelog/109963.yaml b/docs/changelog/109963.yaml
deleted file mode 100644
index 1745d549582d4..0000000000000
--- a/docs/changelog/109963.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 109963
-summary: Propagate mapper builder context flags across nested mapper builder context
- creation
-area: Mapping
-type: bug
-issues: []
diff --git a/docs/changelog/109967.yaml b/docs/changelog/109967.yaml
deleted file mode 100644
index cfc6b6462954b..0000000000000
--- a/docs/changelog/109967.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109967
-summary: Default the HF service to cosine similarity
-area: Machine Learning
-type: enhancement
-issues: []
diff --git a/docs/changelog/109981.yaml b/docs/changelog/109981.yaml
deleted file mode 100644
index cf9388f79e29c..0000000000000
--- a/docs/changelog/109981.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109981
-summary: Limit number of synonym rules that can be created
-area: Mapping
-type: bug
-issues: [108785]
diff --git a/docs/changelog/109989.yaml b/docs/changelog/109989.yaml
deleted file mode 100644
index f1f5972b60eb3..0000000000000
--- a/docs/changelog/109989.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109989
-summary: "ESQL: Fix Join references"
-area: ES|QL
-type: bug
-issues: []
diff --git a/docs/changelog/109993.yaml b/docs/changelog/109993.yaml
deleted file mode 100644
index 40d161b6b5c24..0000000000000
--- a/docs/changelog/109993.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 109993
-summary: "[ES|QL] `weighted_avg`"
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/110004.yaml b/docs/changelog/110004.yaml
deleted file mode 100644
index f680016527a9c..0000000000000
--- a/docs/changelog/110004.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-pr: 110004
-summary: Mark Query Rules as GA
-area: Relevance
-type: feature
-issues: []
-highlight:
- title: Mark Query Rules as GA
- body: |-
- This PR marks query rules as Generally Available. All APIs are no longer
- in tech preview.
- notable: true
diff --git a/docs/changelog/110016.yaml b/docs/changelog/110016.yaml
deleted file mode 100644
index 28ad55aa796c8..0000000000000
--- a/docs/changelog/110016.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110016
-summary: Opt in keyword field into fallback synthetic source if needed
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/110019.yaml b/docs/changelog/110019.yaml
deleted file mode 100644
index 632e79008d351..0000000000000
--- a/docs/changelog/110019.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110019
-summary: Improve mechanism for extracting the result of a `PlainActionFuture`
-area: Distributed
-type: enhancement
-issues:
- - 108125
diff --git a/docs/changelog/110035.yaml b/docs/changelog/110035.yaml
deleted file mode 100644
index 670c58240d835..0000000000000
--- a/docs/changelog/110035.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110035
-summary: Fix equals and hashcode for `SingleValueQuery.LuceneQuery`
-area: ES|QL
-type: bug
-issues: []
diff --git a/docs/changelog/110046.yaml b/docs/changelog/110046.yaml
deleted file mode 100644
index 6ebe440e7aced..0000000000000
--- a/docs/changelog/110046.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110046
-summary: "ESQL: make named params objects truly per request"
-area: ES|QL
-type: bug
-issues:
- - 110028
diff --git a/docs/changelog/110059.yaml b/docs/changelog/110059.yaml
deleted file mode 100644
index ba160c091cdc2..0000000000000
--- a/docs/changelog/110059.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-pr: 110059
-summary: Adds new `bit` `element_type` for `dense_vectors`
-area: Vector Search
-type: feature
-issues: []
-highlight:
- title: Adds new `bit` `element_type` for `dense_vectors`
- body: |-
- 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.
- notable: true
diff --git a/docs/changelog/110066.yaml b/docs/changelog/110066.yaml
deleted file mode 100644
index 920c6304b63ae..0000000000000
--- a/docs/changelog/110066.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110066
-summary: Support flattened fields and multi-fields as dimensions in downsampling
-area: Downsampling
-type: bug
-issues:
- - 99297
diff --git a/docs/changelog/110096.yaml b/docs/changelog/110096.yaml
deleted file mode 100644
index 3d6616c289266..0000000000000
--- a/docs/changelog/110096.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110096
-summary: Fix `ClassCastException` with MV_EXPAND on missing field
-area: ES|QL
-type: bug
-issues:
- - 109974
diff --git a/docs/changelog/110102.yaml b/docs/changelog/110102.yaml
deleted file mode 100644
index d1b9b53e2dfc5..0000000000000
--- a/docs/changelog/110102.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110102
-summary: Optimize ST_DISTANCE filtering with Lucene circle intersection query
-area: ES|QL
-type: enhancement
-issues:
- - 109972
diff --git a/docs/changelog/110103.yaml b/docs/changelog/110103.yaml
deleted file mode 100644
index 9f613ec2b446e..0000000000000
--- a/docs/changelog/110103.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110103
-summary: Fix automatic tracking of collapse with `docvalue_fields`
-area: Search
-type: bug
-issues: []
diff --git a/docs/changelog/110112.yaml b/docs/changelog/110112.yaml
deleted file mode 100644
index eca5fd9af15ce..0000000000000
--- a/docs/changelog/110112.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110112
-summary: Increase response size limit for batched requests
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/110146.yaml b/docs/changelog/110146.yaml
deleted file mode 100644
index 61ba35cec319b..0000000000000
--- a/docs/changelog/110146.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110146
-summary: Fix trailing slash in `ml.get_categories` specification
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/110160.yaml b/docs/changelog/110160.yaml
deleted file mode 100644
index 0c38c23c69067..0000000000000
--- a/docs/changelog/110160.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110160
-summary: Opt in number fields into fallback synthetic source when doc values a…
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/110176.yaml b/docs/changelog/110176.yaml
deleted file mode 100644
index ae1d7d10d6dc4..0000000000000
--- a/docs/changelog/110176.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110176
-summary: Fix trailing slash in two rollup specifications
-area: Rollup
-type: bug
-issues: []
diff --git a/docs/changelog/110177.yaml b/docs/changelog/110177.yaml
deleted file mode 100644
index 0ac5328d88df4..0000000000000
--- a/docs/changelog/110177.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110177
-summary: Fix trailing slash in `security.put_privileges` specification
-area: Authorization
-type: bug
-issues: []
diff --git a/docs/changelog/110179.yaml b/docs/changelog/110179.yaml
deleted file mode 100644
index b99a390c8586f..0000000000000
--- a/docs/changelog/110179.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110179
-summary: Make repository analysis API available to non-operators
-area: Snapshot/Restore
-type: enhancement
-issues:
- - 100318
diff --git a/docs/changelog/110186.yaml b/docs/changelog/110186.yaml
deleted file mode 100644
index 23eaab118e2ab..0000000000000
--- a/docs/changelog/110186.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110186
-summary: Don't sample calls to `ReduceContext#consumeBucketsAndMaybeBreak` ins `InternalDateHistogram`
- and `InternalHistogram` during reduction
-area: Aggregations
-type: bug
-issues: []
diff --git a/docs/changelog/110201.yaml b/docs/changelog/110201.yaml
deleted file mode 100644
index a880638881948..0000000000000
--- a/docs/changelog/110201.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110201
-summary: "ES|QL: Fix DISSECT that overwrites input"
-area: ES|QL
-type: bug
-issues:
- - 110184
diff --git a/docs/changelog/110214.yaml b/docs/changelog/110214.yaml
deleted file mode 100644
index 20f61cac64454..0000000000000
--- a/docs/changelog/110214.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110214
-summary: Handle `ignore_above` in synthetic source for flattened fields
-area: Mapping
-type: enhancement
-issues: []
diff --git a/docs/changelog/110233.yaml b/docs/changelog/110233.yaml
deleted file mode 100644
index d9ce4057090a4..0000000000000
--- a/docs/changelog/110233.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110233
-summary: Support k parameter for knn query
-area: Vector Search
-type: enhancement
-issues:
- - 108473
diff --git a/docs/changelog/110234.yaml b/docs/changelog/110234.yaml
deleted file mode 100644
index 0656ba5fb6636..0000000000000
--- a/docs/changelog/110234.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110234
-summary: Upgrade to Lucene-9.11.1
-area: Search
-type: upgrade
-issues: []
diff --git a/docs/changelog/110236.yaml b/docs/changelog/110236.yaml
deleted file mode 100644
index e2dbff7fbf768..0000000000000
--- a/docs/changelog/110236.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-pr: 110236
-summary: '`ParseHeapRatioOrDeprecatedByteSizeValue` for `indices.breaker.total.limit`'
-area: Infra/Settings
-type: deprecation
-issues: []
-deprecation:
- title: 'Deprecate absolute size values for `indices.breaker.total.limit` setting'
- area: Cluster and node setting
- details: Previously, the value of `indices.breaker.total.limit` could be specified as
- an absolute size in bytes. This setting controls the overal amount of
- memory the server is allowed to use before taking remedial actions. Setting
- this to a specific number of bytes led to strange behaviour when the node
- maximum heap size changed because the circut breaker limit would remain
- unchanged. This would either leave the value too low, causing part of the
- heap to remain unused; or it would leave the value too high, causing the
- circuit breaker to be ineffective at preventing OOM errors. The only
- reasonable behaviour for this setting is that it scales with the size of
- the heap, and so absolute byte limits are now deprecated.
- impact: Users must change their configuration to specify a percentage instead of
- an absolute number of bytes for `indices.breaker.total.limit`, or else
- accept the default, which is already specified as a percentage.
diff --git a/docs/changelog/110251.yaml b/docs/changelog/110251.yaml
deleted file mode 100644
index a3b0c3128be35..0000000000000
--- a/docs/changelog/110251.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-pr: 110251
-summary: Support index sorting with nested fields
-area: Logs
-type: enhancement
-issues:
- - 107349
-highlight:
- title: Index sorting on indexes with nested fields
- body: |-
- 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.
- notable: false
diff --git a/docs/changelog/110268.yaml b/docs/changelog/110268.yaml
deleted file mode 100644
index adfb467f92e8b..0000000000000
--- a/docs/changelog/110268.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110268
-summary: Disallow index.time_series.end_time setting from being set or updated in normal indices
-area: TSDB
-type: bug
-issues:
- - 110265
diff --git a/docs/changelog/110334.yaml b/docs/changelog/110334.yaml
deleted file mode 100644
index f83ac04ded773..0000000000000
--- a/docs/changelog/110334.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110334
-summary: Sentence Chunker
-area: Machine Learning
-type: enhancement
-issues: []
diff --git a/docs/changelog/110337.yaml b/docs/changelog/110337.yaml
deleted file mode 100644
index bf21a95c9157f..0000000000000
--- a/docs/changelog/110337.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110337
-summary: Support `ignore_above` on keyword dimensions
-area: TSDB
-type: enhancement
-issues: []
diff --git a/docs/changelog/110338.yaml b/docs/changelog/110338.yaml
deleted file mode 100644
index 2334a1cbc9283..0000000000000
--- a/docs/changelog/110338.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110338
-summary: Add `semantic_text` field type and `semantic` query
-area: Mapping
-type: feature
-issues: []
diff --git a/docs/changelog/110347.yaml b/docs/changelog/110347.yaml
deleted file mode 100644
index 8727128230935..0000000000000
--- a/docs/changelog/110347.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110347
-summary: "ESQL: Renamed `TopList` to Top"
-area: ES|QL
-type: enhancement
-issues: []
diff --git a/docs/changelog/110361.yaml b/docs/changelog/110361.yaml
deleted file mode 100644
index 8558c88e06049..0000000000000
--- a/docs/changelog/110361.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-pr: 110361
-summary: Don't detect `PlainActionFuture` deadlock on concurrent complete
-area: Distributed
-type: bug
-issues:
- - 110181
- - 110360
diff --git a/docs/changelog/110369.yaml b/docs/changelog/110369.yaml
deleted file mode 100644
index 770294605b444..0000000000000
--- a/docs/changelog/110369.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110369
-summary: Run terms concurrently when cardinality is only lower than shard size
-area: Aggregations
-type: bug
-issues:
- - 105505
diff --git a/docs/changelog/110383.yaml b/docs/changelog/110383.yaml
deleted file mode 100644
index 5e9bddd4bfcd2..0000000000000
--- a/docs/changelog/110383.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110383
-summary: Add bulk delete roles API
-area: Security
-type: enhancement
-issues: []
diff --git a/docs/changelog/110391.yaml b/docs/changelog/110391.yaml
deleted file mode 100644
index 1e00eda970398..0000000000000
--- a/docs/changelog/110391.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-pr: 110391
-summary: Fix ST_DISTANCE Lucene push-down for complex predicates
-area: ES|QL
-type: bug
-issues:
- - 110349
diff --git a/docs/changelog/110395.yaml b/docs/changelog/110395.yaml
deleted file mode 100644
index 690be55abb5b2..0000000000000
--- a/docs/changelog/110395.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-pr: 110395
-summary: Mark the Redact processor as Generally Available
-area: Ingest Node
-type: feature
-issues: []
-highlight:
- title: The Redact processor is Generally Available
- body: 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.
- notable: true
diff --git a/docs/changelog/110431.yaml b/docs/changelog/110431.yaml
deleted file mode 100644
index 0dd93ef718ef9..0000000000000
--- a/docs/changelog/110431.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-pr: 110431
-summary: "[Inference API] Fix serialization for inference delete endpoint response"
-area: Machine Learning
-type: bug
-issues: []
diff --git a/docs/changelog/111684.yaml b/docs/changelog/111684.yaml
new file mode 100644
index 0000000000000..32edb5723cb0a
--- /dev/null
+++ b/docs/changelog/111684.yaml
@@ -0,0 +1,5 @@
+pr: 111684
+summary: Write downloaded model parts async
+area: Machine Learning
+type: enhancement
+issues: []
diff --git a/docs/changelog/112761.yaml b/docs/changelog/112761.yaml
new file mode 100644
index 0000000000000..fe63f38f365a4
--- /dev/null
+++ b/docs/changelog/112761.yaml
@@ -0,0 +1,6 @@
+pr: 112761
+summary: Fix collapse interaction with stored fields
+area: Search
+type: bug
+issues:
+ - 112646
diff --git a/docs/changelog/113123.yaml b/docs/changelog/113123.yaml
new file mode 100644
index 0000000000000..43008eaa80f43
--- /dev/null
+++ b/docs/changelog/113123.yaml
@@ -0,0 +1,6 @@
+pr: 113123
+summary: "ES|QL: Skip CASE function from `InferIsNotNull` rule checks"
+area: ES|QL
+type: bug
+issues:
+ - 112704
diff --git a/docs/changelog/113129.yaml b/docs/changelog/113129.yaml
new file mode 100644
index 0000000000000..d88d86387ac10
--- /dev/null
+++ b/docs/changelog/113129.yaml
@@ -0,0 +1,6 @@
+pr: 113129
+summary: Fix `needsScore` computation in `GlobalOrdCardinalityAggregator`
+area: Aggregations
+type: bug
+issues:
+ - 112975
diff --git a/docs/changelog/113266.yaml b/docs/changelog/113266.yaml
new file mode 100644
index 0000000000000..d423387d45738
--- /dev/null
+++ b/docs/changelog/113266.yaml
@@ -0,0 +1,5 @@
+pr: 113266
+summary: "[M] Fix error message formatting"
+area: Machine Learning
+type: bug
+issues: []
diff --git a/docs/changelog/113410.yaml b/docs/changelog/113410.yaml
new file mode 100644
index 0000000000000..03dec6624b771
--- /dev/null
+++ b/docs/changelog/113410.yaml
@@ -0,0 +1,5 @@
+pr: 113410
+summary: "[ML][backport] Warn for model load failures if they have a status code <500"
+area: Machine Learning
+type: bug
+issues: []
diff --git a/docs/changelog/113437.yaml b/docs/changelog/113437.yaml
new file mode 100644
index 0000000000000..98831958e63f8
--- /dev/null
+++ b/docs/changelog/113437.yaml
@@ -0,0 +1,6 @@
+pr: 113437
+summary: Fix check on E5 model platform compatibility
+area: Machine Learning
+type: bug
+issues:
+ - 113577
diff --git a/docs/changelog/113697.yaml b/docs/changelog/113697.yaml
new file mode 100644
index 0000000000000..1362e01fcc89b
--- /dev/null
+++ b/docs/changelog/113697.yaml
@@ -0,0 +1,6 @@
+pr: 113697
+summary: Handle parsing ingest processors where definition is not a object
+area: Machine Learning
+type: bug
+issues:
+ - 113615
diff --git a/docs/changelog/113699.yaml b/docs/changelog/113699.yaml
new file mode 100644
index 0000000000000..3876c8147e7eb
--- /dev/null
+++ b/docs/changelog/113699.yaml
@@ -0,0 +1,5 @@
+pr: 113699
+summary: "[ESQL] Fix init value in max float aggregation"
+area: ES|QL
+type: bug
+issues: []
diff --git a/docs/changelog/113846.yaml b/docs/changelog/113846.yaml
new file mode 100644
index 0000000000000..5fdd56e98d706
--- /dev/null
+++ b/docs/changelog/113846.yaml
@@ -0,0 +1,6 @@
+pr: 113846
+summary: Don't validate internal stats if they are empty
+area: Aggregations
+type: bug
+issues:
+ - 113811
diff --git a/docs/changelog/113869.yaml b/docs/changelog/113869.yaml
new file mode 100644
index 0000000000000..f1cd1ec423966
--- /dev/null
+++ b/docs/changelog/113869.yaml
@@ -0,0 +1,5 @@
+pr: 113869
+summary: Upgrade protobufer to 3.25.5
+area: Snapshot/Restore
+type: upgrade
+issues: []
diff --git a/docs/changelog/113961.yaml b/docs/changelog/113961.yaml
new file mode 100644
index 0000000000000..24cb1f45f029e
--- /dev/null
+++ b/docs/changelog/113961.yaml
@@ -0,0 +1,5 @@
+pr: 113961
+summary: "[ESQL] Support datetime data type in Least and Greatest functions"
+area: ES|QL
+type: bug
+issues: []
diff --git a/docs/changelog/114116.yaml b/docs/changelog/114116.yaml
new file mode 100644
index 0000000000000..8d1c9e162ae23
--- /dev/null
+++ b/docs/changelog/114116.yaml
@@ -0,0 +1,5 @@
+pr: 114116
+summary: "ES|QL: Ensure minimum capacity for `PlanStreamInput` caches"
+area: ES|QL
+type: bug
+issues: []
diff --git a/docs/changelog/114264.yaml b/docs/changelog/114264.yaml
new file mode 100644
index 0000000000000..fe421f6422830
--- /dev/null
+++ b/docs/changelog/114264.yaml
@@ -0,0 +1,5 @@
+pr: 114264
+summary: "Fix analyzed wildcard query in simple_query_string when disjunctions is empty"
+area: Search
+type: bug
+issues: [114185]
diff --git a/docs/changelog/114337.yaml b/docs/changelog/114337.yaml
new file mode 100644
index 0000000000000..ec55be8bb179b
--- /dev/null
+++ b/docs/changelog/114337.yaml
@@ -0,0 +1,5 @@
+pr: 114337
+summary: "Enables cluster state role mapper, to include ECK operator-defined role mappings in role resolution"
+area: Authentication
+type: bug
+issues: []
diff --git a/docs/changelog/114533.yaml b/docs/changelog/114533.yaml
new file mode 100644
index 0000000000000..f45589e8de921
--- /dev/null
+++ b/docs/changelog/114533.yaml
@@ -0,0 +1,5 @@
+pr: 114533
+summary: Fix dim validation for bit `element_type`
+area: Vector Search
+type: bug
+issues: []
diff --git a/docs/internal/DistributedArchitectureGuide.md b/docs/internal/DistributedArchitectureGuide.md
index 732e2e7be46fa..0114be68b9be2 100644
--- a/docs/internal/DistributedArchitectureGuide.md
+++ b/docs/internal/DistributedArchitectureGuide.md
@@ -252,7 +252,7 @@ changes. The cloud service will add more resources to the cluster based on Elast
Elasticsearch by itself cannot automatically scale.
Autoscaling recommendations are tailored for the user [based on user defined policies][], composed of data
-roles (hot, frozen, etc) and [deciders][]. There's a public [webinar on autoscaling][], as well as the
+roles (hot, frozen, etc.) and [deciders][]. There's a public [webinar on autoscaling][], as well as the
public [Autoscaling APIs] docs.
Autoscaling's current implementation is based primary on storage requirements, as well as memory capacity
@@ -332,7 +332,7 @@ problems in the cluster. It uses [an algorithm defined here][]. Some examples ar
[an algorithm defined here]: https://github.com/elastic/elasticsearch/blob/v8.13.2/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/storage/ReactiveStorageDeciderService.java#L158-L176
The `ProactiveStorageDeciderService` maintains a forecast window that [defaults to 30 minutes][]. It only
-runs on data streams (ILM, rollover, etc), not regular indexes. It looks at past [index changes][] that
+runs on data streams (ILM, rollover, etc.), not regular indexes. It looks at past [index changes][] that
took place within the forecast window to [predict][] resources that will be needed shortly.
[defaults to 30 minutes]: https://github.com/elastic/elasticsearch/blob/v8.13.2/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/storage/ProactiveStorageDeciderService.java#L32
diff --git a/docs/painless/painless-contexts/painless-field-context.asciidoc b/docs/painless/painless-contexts/painless-field-context.asciidoc
index 2f4e27dd11e6b..661af8e64d1e0 100644
--- a/docs/painless/painless-contexts/painless-field-context.asciidoc
+++ b/docs/painless/painless-contexts/painless-field-context.asciidoc
@@ -64,14 +64,14 @@ actors that appear in each play:
----
GET seats/_search
{
- "size": 2,
+ "size": 2,
"query": {
"match_all": {}
},
"script_fields": {
"day-of-week": {
"script": {
- "source": "doc['datetime'].value.getDayOfWeekEnum().getDisplayName(TextStyle.FULL, Locale.ROOT)"
+ "source": "doc['datetime'].value.getDayOfWeekEnum().getDisplayName(TextStyle.FULL, Locale.ENGLISH)"
}
},
"number-of-actors": {
@@ -132,4 +132,4 @@ GET seats/_search
}
}
----
-// TESTRESPONSE[s/"took" : 68/"took" : "$body.took"/]
\ No newline at end of file
+// TESTRESPONSE[s/"took" : 68/"took" : "$body.took"/]
diff --git a/docs/painless/painless-guide/painless-execute-script.asciidoc b/docs/painless/painless-guide/painless-execute-script.asciidoc
index 4417daeb63efa..771a6818d45e8 100644
--- a/docs/painless/painless-guide/painless-execute-script.asciidoc
+++ b/docs/painless/painless-guide/painless-execute-script.asciidoc
@@ -749,7 +749,7 @@ POST /_scripts/painless/_execute
{
"script": {
"source": """
- emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ROOT));
+ emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ENGLISH));
"""
},
"context": "keyword_field",
diff --git a/docs/plugins/analysis-icu.asciidoc b/docs/plugins/analysis-icu.asciidoc
index f6ca6ceae7ea4..da7efd2843f50 100644
--- a/docs/plugins/analysis-icu.asciidoc
+++ b/docs/plugins/analysis-icu.asciidoc
@@ -380,7 +380,7 @@ GET /my-index-000001/_search <3>
--------------------------
-<1> The `name` field uses the `standard` analyzer, and so support full text queries.
+<1> The `name` field uses the `standard` analyzer, and so supports full text queries.
<2> The `name.sort` field is an `icu_collation_keyword` field that will preserve the name as
a single token doc values, and applies the German ``phonebook'' order.
<3> An example query which searches the `name` field and sorts on the `name.sort` field.
@@ -467,7 +467,7 @@ differences.
`case_first`::
Possible values: `lower` or `upper`. Useful to control which case is sorted
-first when case is not ignored for strength `tertiary`. The default depends on
+first when the case is not ignored for strength `tertiary`. The default depends on
the collation.
`numeric`::
diff --git a/docs/plugins/analysis-kuromoji.asciidoc b/docs/plugins/analysis-kuromoji.asciidoc
index 1f114e9ad9ed6..fa6229b9f20e8 100644
--- a/docs/plugins/analysis-kuromoji.asciidoc
+++ b/docs/plugins/analysis-kuromoji.asciidoc
@@ -86,7 +86,7 @@ The `kuromoji_iteration_mark` normalizes Japanese horizontal iteration marks
`normalize_kanji`::
- Indicates whether kanji iteration marks should be normalize. Defaults to `true`.
+ Indicates whether kanji iteration marks should be normalized. Defaults to `true`.
`normalize_kana`::
@@ -189,7 +189,7 @@ PUT kuromoji_sample
+
--
Additional expert user parameters `nbest_cost` and `nbest_examples` can be used
-to include additional tokens that most likely according to the statistical model.
+to include additional tokens that are most likely according to the statistical model.
If both parameters are used, the largest number of both is applied.
`nbest_cost`::
@@ -624,3 +624,123 @@ Which results in:
} ]
}
--------------------------------------------------
+
+[[analysis-kuromoji-hiragana-uppercase]]
+==== `hiragana_uppercase` token filter
+
+The `hiragana_uppercase` token filter normalizes small letters (捨て仮名) in hiragana into standard letters.
+This filter is useful if you want to search against old style Japanese text such as
+patents, legal documents, contract policies, etc.
+
+For example:
+
+[source,console]
+--------------------------------------------------
+PUT kuromoji_sample
+{
+ "settings": {
+ "index": {
+ "analysis": {
+ "analyzer": {
+ "my_analyzer": {
+ "tokenizer": "kuromoji_tokenizer",
+ "filter": [
+ "hiragana_uppercase"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
+
+GET kuromoji_sample/_analyze
+{
+ "analyzer": "my_analyzer",
+ "text": "ちょっとまって"
+}
+--------------------------------------------------
+
+Which results in:
+
+[source,console-result]
+--------------------------------------------------
+{
+ "tokens": [
+ {
+ "token": "ちよつと",
+ "start_offset": 0,
+ "end_offset": 4,
+ "type": "word",
+ "position": 0
+ },
+ {
+ "token": "まつ",
+ "start_offset": 4,
+ "end_offset": 6,
+ "type": "word",
+ "position": 1
+ },
+ {
+ "token": "て",
+ "start_offset": 6,
+ "end_offset": 7,
+ "type": "word",
+ "position": 2
+ }
+ ]
+}
+--------------------------------------------------
+
+[[analysis-kuromoji-katakana-uppercase]]
+==== `katakana_uppercase` token filter
+
+The `katakana_uppercase` token filter normalizes small letters (捨て仮名) in katakana into standard letters.
+This filter is useful if you want to search against old style Japanese text such as
+patents, legal documents, contract policies, etc.
+
+For example:
+
+[source,console]
+--------------------------------------------------
+PUT kuromoji_sample
+{
+ "settings": {
+ "index": {
+ "analysis": {
+ "analyzer": {
+ "my_analyzer": {
+ "tokenizer": "kuromoji_tokenizer",
+ "filter": [
+ "katakana_uppercase"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
+
+GET kuromoji_sample/_analyze
+{
+ "analyzer": "my_analyzer",
+ "text": "ストップウォッチ"
+}
+--------------------------------------------------
+
+Which results in:
+
+[source,console-result]
+--------------------------------------------------
+{
+ "tokens": [
+ {
+ "token": "ストツプウオツチ",
+ "start_offset": 0,
+ "end_offset": 8,
+ "type": "word",
+ "position": 0
+ }
+ ]
+}
+--------------------------------------------------
diff --git a/docs/plugins/analysis-nori.asciidoc b/docs/plugins/analysis-nori.asciidoc
index 1a3153fa3bea5..369268bcef0cd 100644
--- a/docs/plugins/analysis-nori.asciidoc
+++ b/docs/plugins/analysis-nori.asciidoc
@@ -447,7 +447,7 @@ Which responds with:
The `nori_number` token filter normalizes Korean numbers
to regular Arabic decimal numbers in half-width characters.
-Korean numbers are often written using a combination of Hangul and Arabic numbers with various kinds punctuation.
+Korean numbers are often written using a combination of Hangul and Arabic numbers with various kinds of punctuation.
For example, 3.2천 means 3200.
This filter does this kind of normalization and allows a search for 3200 to match 3.2천 in text,
but can also be used to make range facets based on the normalized numbers and so on.
diff --git a/docs/plugins/development/creating-classic-plugins.asciidoc b/docs/plugins/development/creating-classic-plugins.asciidoc
index f3f62a11f2993..531de916f14fa 100644
--- a/docs/plugins/development/creating-classic-plugins.asciidoc
+++ b/docs/plugins/development/creating-classic-plugins.asciidoc
@@ -18,7 +18,7 @@ will refuse to start in the presence of plugins with the incorrect
[discrete]
==== Classic plugin file structure
-Classis plugins are ZIP files composed of JAR files and
+Classic plugins are ZIP files composed of JAR files and
<>, a Java properties file that describes the
plugin.
diff --git a/docs/plugins/development/creating-stable-plugins.asciidoc b/docs/plugins/development/creating-stable-plugins.asciidoc
index c9a8a1f6c7e2a..9f98774b5a761 100644
--- a/docs/plugins/development/creating-stable-plugins.asciidoc
+++ b/docs/plugins/development/creating-stable-plugins.asciidoc
@@ -1,8 +1,8 @@
[[creating-stable-plugins]]
=== Creating text analysis plugins with the stable plugin API
-Text analysis plugins provide {es} with custom {ref}/analysis.html[Lucene
-analyzers, token filters, character filters, and tokenizers].
+Text analysis plugins provide {es} with custom {ref}/analysis.html[Lucene
+analyzers, token filters, character filters, and tokenizers].
[discrete]
==== The stable plugin API
@@ -10,7 +10,7 @@ analyzers, token filters, character filters, and tokenizers].
Text analysis plugins can be developed against the stable plugin API. This API
consists of the following dependencies:
-* `plugin-api` - an API used by plugin developers to implement custom {es}
+* `plugin-api` - an API used by plugin developers to implement custom {es}
plugins.
* `plugin-analysis-api` - an API used by plugin developers to implement analysis
plugins and integrate them into {es}.
@@ -18,7 +18,7 @@ plugins and integrate them into {es}.
core Lucene analysis interfaces like `Tokenizer`, `Analyzer`, and `TokenStream`.
For new versions of {es} within the same major version, plugins built against
-this API do not need to be recompiled. Future versions of the API will be
+this API does not need to be recompiled. Future versions of the API will be
backwards compatible and plugins are binary compatible with future versions of
{es}. In other words, once you have a working artifact, you can re-use it when
you upgrade {es} to a new bugfix or minor version.
@@ -48,9 +48,9 @@ require code changes.
Stable plugins are ZIP files composed of JAR files and two metadata files:
-* `stable-plugin-descriptor.properties` - a Java properties file that describes
+* `stable-plugin-descriptor.properties` - a Java properties file that describes
the plugin. Refer to <>.
-* `named_components.json` - a JSON file mapping interfaces to key-value pairs
+* `named_components.json` - a JSON file mapping interfaces to key-value pairs
of component names and implementation classes.
Note that only JAR files at the root of the plugin are added to the classpath
@@ -65,7 +65,7 @@ you use this plugin. However, you don't need Gradle to create plugins.
The {es} Github repository contains
{es-repo}tree/main/plugins/examples/stable-analysis[an example analysis plugin].
-The example `build.gradle` build script provides a good starting point for
+The example `build.gradle` build script provides a good starting point for
developing your own plugin.
[discrete]
@@ -77,29 +77,29 @@ Plugins are written in Java, so you need to install a Java Development Kit
[discrete]
===== Step by step
-. Create a directory for your project.
+. Create a directory for your project.
. Copy the example `build.gradle` build script to your project directory. Note
that this build script uses the `elasticsearch.stable-esplugin` gradle plugin to
build your plugin.
. Edit the `build.gradle` build script:
-** Add a definition for the `pluginApiVersion` and matching `luceneVersion`
-variables to the top of the file. You can find these versions in the
-`build-tools-internal/version.properties` file in the {es-repo}[Elasticsearch
+** Add a definition for the `pluginApiVersion` and matching `luceneVersion`
+variables to the top of the file. You can find these versions in the
+`build-tools-internal/version.properties` file in the {es-repo}[Elasticsearch
Github repository].
-** Edit the `name` and `description` in the `esplugin` section of the build
-script. This will create the plugin descriptor file. If you're not using the
-`elasticsearch.stable-esplugin` gradle plugin, refer to
+** Edit the `name` and `description` in the `esplugin` section of the build
+script. This will create the plugin descriptor file. If you're not using the
+`elasticsearch.stable-esplugin` gradle plugin, refer to
<> to create the file manually.
** Add module information.
-** Ensure you have declared the following compile-time dependencies. These
-dependencies are compile-time only because {es} will provide these libraries at
+** Ensure you have declared the following compile-time dependencies. These
+dependencies are compile-time only because {es} will provide these libraries at
runtime.
*** `org.elasticsearch.plugin:elasticsearch-plugin-api`
*** `org.elasticsearch.plugin:elasticsearch-plugin-analysis-api`
*** `org.apache.lucene:lucene-analysis-common`
-** For unit testing, ensure these dependencies have also been added to the
+** For unit testing, ensure these dependencies have also been added to the
`build.gradle` script as `testImplementation` dependencies.
-. Implement an interface from the analysis plugin API, annotating it with
+. Implement an interface from the analysis plugin API, annotating it with
`NamedComponent`. Refer to <> for an example.
. You should now be able to assemble a plugin ZIP file by running:
+
@@ -107,22 +107,22 @@ runtime.
----
gradle bundlePlugin
----
-The resulting plugin ZIP file is written to the `build/distributions`
+The resulting plugin ZIP file is written to the `build/distributions`
directory.
[discrete]
===== YAML REST tests
-The Gradle `elasticsearch.yaml-rest-test` plugin enables testing of your
-plugin using the {es-repo}blob/main/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/README.asciidoc[{es} yamlRestTest framework].
+The Gradle `elasticsearch.yaml-rest-test` plugin enables testing of your
+plugin using the {es-repo}blob/main/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/README.asciidoc[{es} yamlRestTest framework].
These tests use a YAML-formatted domain language to issue REST requests against
-an internal {es} cluster that has your plugin installed, and to check the
-results of those requests. The structure of a YAML REST test directory is as
+an internal {es} cluster that has your plugin installed, and to check the
+results of those requests. The structure of a YAML REST test directory is as
follows:
-* A test suite class, defined under `src/yamlRestTest/java`. This class should
+* A test suite class, defined under `src/yamlRestTest/java`. This class should
extend `ESClientYamlSuiteTestCase`.
-* The YAML tests themselves should be defined under
+* The YAML tests themselves should be defined under
`src/yamlRestTest/resources/test/`.
[[plugin-descriptor-file-stable]]
diff --git a/docs/plugins/discovery-azure-classic.asciidoc b/docs/plugins/discovery-azure-classic.asciidoc
index aa710a2fe7ef9..b8d37f024172c 100644
--- a/docs/plugins/discovery-azure-classic.asciidoc
+++ b/docs/plugins/discovery-azure-classic.asciidoc
@@ -148,7 +148,7 @@ Before starting, you need to have:
--
You should follow http://azure.microsoft.com/en-us/documentation/articles/linux-use-ssh-key/[this guide] to learn
-how to create or use existing SSH keys. If you have already did it, you can skip the following.
+how to create or use existing SSH keys. If you have already done it, you can skip the following.
Here is a description on how to generate SSH keys using `openssl`:
diff --git a/docs/plugins/discovery-gce.asciidoc b/docs/plugins/discovery-gce.asciidoc
index 2e8cff21208e0..0a2629b7f094b 100644
--- a/docs/plugins/discovery-gce.asciidoc
+++ b/docs/plugins/discovery-gce.asciidoc
@@ -478,7 +478,7 @@ discovery:
seed_providers: gce
--------------------------------------------------
-Replaces `project_id` and `zone` with your settings.
+Replace `project_id` and `zone` with your settings.
To run test:
diff --git a/docs/plugins/integrations.asciidoc b/docs/plugins/integrations.asciidoc
index 71f237692ad35..aff4aed0becd2 100644
--- a/docs/plugins/integrations.asciidoc
+++ b/docs/plugins/integrations.asciidoc
@@ -91,7 +91,7 @@ Integrations are not plugins, but are external tools or modules that make it eas
Elasticsearch Grails plugin.
* https://hibernate.org/search/[Hibernate Search]
- Integration with Hibernate ORM, from the Hibernate team. Automatic synchronization of write operations, yet exposes full Elasticsearch capabilities for queries. Can return either Elasticsearch native or re-map queries back into managed entities loaded within transaction from the reference database.
+ Integration with Hibernate ORM, from the Hibernate team. Automatic synchronization of write operations, yet exposes full Elasticsearch capabilities for queries. Can return either Elasticsearch native or re-map queries back into managed entities loaded within transactions from the reference database.
* https://github.com/spring-projects/spring-data-elasticsearch[Spring Data Elasticsearch]:
Spring Data implementation for Elasticsearch
@@ -104,7 +104,7 @@ Integrations are not plugins, but are external tools or modules that make it eas
* https://pulsar.apache.org/docs/en/io-elasticsearch[Apache Pulsar]:
The Elasticsearch Sink Connector is used to pull messages from Pulsar topics
- and persist the messages to a index.
+ and persist the messages to an index.
* https://micronaut-projects.github.io/micronaut-elasticsearch/latest/guide/index.html[Micronaut Elasticsearch Integration]:
Integration of Micronaut with Elasticsearch
diff --git a/docs/plugins/mapper-annotated-text.asciidoc b/docs/plugins/mapper-annotated-text.asciidoc
index afe8ba41da9b8..e4141e98a2285 100644
--- a/docs/plugins/mapper-annotated-text.asciidoc
+++ b/docs/plugins/mapper-annotated-text.asciidoc
@@ -143,7 +143,7 @@ broader positional queries e.g. finding mentions of a `Guitarist` near to `strat
WARNING: Any use of `=` signs in annotation values eg `[Prince](person=Prince)` will
cause the document to be rejected with a parse failure. In future we hope to have a use for
-the equals signs so wil actively reject documents that contain this today.
+the equals signs so will actively reject documents that contain this today.
[[annotated-text-synthetic-source]]
===== Synthetic `_source`
diff --git a/docs/plugins/store-smb.asciidoc b/docs/plugins/store-smb.asciidoc
index 8557ef868010f..da803b4f42022 100644
--- a/docs/plugins/store-smb.asciidoc
+++ b/docs/plugins/store-smb.asciidoc
@@ -10,7 +10,7 @@ include::install_remove.asciidoc[]
==== Working around a bug in Windows SMB and Java on windows
When using a shared file system based on the SMB protocol (like Azure File Service) to store indices, the way Lucene
-open index segment files is with a write only flag. This is the _correct_ way to open the files, as they will only be
+opens index segment files is with a write only flag. This is the _correct_ way to open the files, as they will only be
used for writes and allows different FS implementations to optimize for it. Sadly, in windows with SMB, this disables
the cache manager, causing writes to be slow. This has been described in
https://issues.apache.org/jira/browse/LUCENE-6176[LUCENE-6176], but it affects each and every Java program out there!.
@@ -44,7 +44,7 @@ This can be configured for all indices by adding this to the `elasticsearch.yml`
index.store.type: smb_nio_fs
----
-Note that setting will be applied for newly created indices.
+Note that settings will be applied for newly created indices.
It can also be set on a per-index basis at index creation time:
diff --git a/docs/reference/aggregations/bucket/composite-aggregation.asciidoc b/docs/reference/aggregations/bucket/composite-aggregation.asciidoc
index 807ec93132d37..ded01237c23c8 100644
--- a/docs/reference/aggregations/bucket/composite-aggregation.asciidoc
+++ b/docs/reference/aggregations/bucket/composite-aggregation.asciidoc
@@ -156,7 +156,7 @@ GET /_search
"type": "keyword",
"script": """
emit(doc['timestamp'].value.dayOfWeekEnum
- .getDisplayName(TextStyle.FULL, Locale.ROOT))
+ .getDisplayName(TextStyle.FULL, Locale.ENGLISH))
"""
}
},
diff --git a/docs/reference/aggregations/bucket/datehistogram-aggregation.asciidoc b/docs/reference/aggregations/bucket/datehistogram-aggregation.asciidoc
index 3511ec9e63b02..ef62f263a54a8 100644
--- a/docs/reference/aggregations/bucket/datehistogram-aggregation.asciidoc
+++ b/docs/reference/aggregations/bucket/datehistogram-aggregation.asciidoc
@@ -582,7 +582,7 @@ For example, the offset of `+19d` will result in buckets with names like `2022-0
Increasing the offset to `+20d`, each document will appear in a bucket for the previous month,
with all bucket keys ending with the same day of the month, as normal.
-However, further increasing to `+28d`,
+However, further increasing to `+28d`,
what used to be a February bucket has now become `"2022-03-01"`.
[source,console,id=datehistogram-aggregation-offset-example-28d]
@@ -819,7 +819,7 @@ POST /sales/_search?size=0
"runtime_mappings": {
"date.day_of_week": {
"type": "keyword",
- "script": "emit(doc['date'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ROOT))"
+ "script": "emit(doc['date'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ENGLISH))"
}
},
"aggs": {
diff --git a/docs/reference/analysis/tokenfilters/synonym-graph-tokenfilter.asciidoc b/docs/reference/analysis/tokenfilters/synonym-graph-tokenfilter.asciidoc
index 3efb8f6de9b3e..e37118019a55c 100644
--- a/docs/reference/analysis/tokenfilters/synonym-graph-tokenfilter.asciidoc
+++ b/docs/reference/analysis/tokenfilters/synonym-graph-tokenfilter.asciidoc
@@ -85,45 +85,45 @@ Additional settings are:
<> search analyzers to pick up
changes to synonym files. Only to be used for search analyzers.
* `expand` (defaults to `true`).
-* `lenient` (defaults to `false`). If `true` ignores exceptions while parsing the synonym configuration. It is important
-to note that only those synonym rules which cannot get parsed are ignored. For instance consider the following request:
-
-[source,console]
---------------------------------------------------
-PUT /test_index
-{
- "settings": {
- "index": {
- "analysis": {
- "analyzer": {
- "synonym": {
- "tokenizer": "standard",
- "filter": [ "my_stop", "synonym_graph" ]
- }
- },
- "filter": {
- "my_stop": {
- "type": "stop",
- "stopwords": [ "bar" ]
- },
- "synonym_graph": {
- "type": "synonym_graph",
- "lenient": true,
- "synonyms": [ "foo, bar => baz" ]
- }
- }
- }
- }
- }
-}
---------------------------------------------------
+Expands definitions for equivalent synonym rules.
+See <>.
+* `lenient` (defaults to `false`).
+If `true` ignores errors while parsing the synonym configuration.
+It is important to note that only those synonym rules which cannot get parsed are ignored.
+See <> for an example of `lenient` behaviour for invalid synonym rules.
+
+[discrete]
+[[synonym-graph-tokenizer-expand-equivalent-synonyms]]
+===== `expand` equivalent synonym rules
+
+The `expand` parameter controls whether to expand equivalent synonym rules.
+Consider a synonym defined like:
+
+`foo, bar, baz`
+
+Using `expand: true`, the synonym rule would be expanded into:
-With the above request the word `bar` gets skipped but a mapping `foo => baz` is still added. However, if the mapping
-being added was `foo, baz => bar` nothing would get added to the synonym list. This is because the target word for the
-mapping is itself eliminated because it was a stop word. Similarly, if the mapping was "bar, foo, baz" and `expand` was
-set to `false` no mapping would get added as when `expand=false` the target mapping is the first word. However, if
-`expand=true` then the mappings added would be equivalent to `foo, baz => foo, baz` i.e, all mappings other than the
-stop word.
+```
+foo => foo
+foo => bar
+foo => baz
+bar => foo
+bar => bar
+bar => baz
+baz => foo
+baz => bar
+baz => baz
+```
+
+When `expand` is set to `false`, the synonym rule is not expanded and the first synonym is treated as the canonical representation. The synonym would be equivalent to:
+
+```
+foo => foo
+bar => foo
+baz => foo
+```
+
+The `expand` parameter does not affect explicit synonym rules, like `foo, bar => baz`.
[discrete]
[[synonym-graph-tokenizer-ignore_case-deprecated]]
@@ -160,12 +160,65 @@ Text will be processed first through filters preceding the synonym filter before
{es} will also use the token filters preceding the synonym filter in a tokenizer chain to parse the entries in a synonym file or synonym set.
In the above example, the synonyms graph token filter is placed after a stemmer. The stemmer will also be applied to the synonym entries.
-The synonym rules should not contain words that are removed by a filter that appears later in the chain (like a `stop` filter).
-Removing a term from a synonym rule means there will be no matching for it at query time.
-
Because entries in the synonym map cannot have stacked positions, some token filters may cause issues here.
Token filters that produce multiple versions of a token may choose which version of the token to emit when parsing synonyms.
For example, `asciifolding` will only produce the folded version of the token.
Others, like `multiplexer`, `word_delimiter_graph` or `ngram` will throw an error.
If you need to build analyzers that include both multi-token filters and synonym filters, consider using the <> filter, with the multi-token filters in one branch and the synonym filter in the other.
+
+[discrete]
+[[synonym-graph-tokenizer-stop-token-filter]]
+===== Synonyms and `stop` token filters
+
+Synonyms and <> interact with each other in the following ways:
+
+[discrete]
+====== Stop token filter *before* synonym token filter
+
+Stop words will be removed from the synonym rule definition.
+This can can cause errors on the synonym rule.
+
+[WARNING]
+====
+Invalid synonym rules can cause errors when applying analyzer changes.
+For reloadable analyzers, this prevents reloading and applying changes.
+You must correct errors in the synonym rules and reload the analyzer.
+
+An index with invalid synonym rules cannot be reopened, making it inoperable when:
+
+* A node containing the index starts
+* The index is opened from a closed state
+* A node restart occurs (which reopens the node assigned shards)
+====
+
+For *explicit synonym rules* like `foo, bar => baz` with a stop filter that removes `bar`:
+
+- If `lenient` is set to `false`, an error will be raised as `bar` would be removed from the left hand side of the synonym rule.
+- If `lenient` is set to `true`, the rule `foo => baz` will be added and `bar => baz` will be ignored.
+
+If the stop filter removed `baz` instead:
+
+- If `lenient` is set to `false`, an error will be raised as `baz` would be removed from the right hand side of the synonym rule.
+- If `lenient` is set to `true`, the synonym will have no effect as the target word is removed.
+
+For *equivalent synonym rules* like `foo, bar, baz` and `expand: true, with a stop filter that removes `bar`:
+
+- If `lenient` is set to `false`, an error will be raised as `bar` would be removed from the synonym rule.
+- If `lenient` is set to `true`, the synonyms added would be equivalent to the following synonym rules, which do not contain the removed word:
+
+```
+foo => foo
+foo => baz
+baz => foo
+baz => baz
+```
+
+[discrete]
+====== Stop token filter *after* synonym token filter
+
+The stop filter will remove the terms from the resulting synonym expansion.
+
+For example, a synonym rule like `foo, bar => baz` and a stop filter that removes `baz` will get no matches for `foo` or `bar`, as both would get expanded to `baz` which is removed by the stop filter.
+
+If the stop filter removed `foo` instead, then searching for `foo` would get expanded to `baz`, which is not removed by the stop filter thus potentially providing matches for `baz`.
diff --git a/docs/reference/analysis/tokenfilters/synonym-tokenfilter.asciidoc b/docs/reference/analysis/tokenfilters/synonym-tokenfilter.asciidoc
index 046cd297b5092..1658f016db60b 100644
--- a/docs/reference/analysis/tokenfilters/synonym-tokenfilter.asciidoc
+++ b/docs/reference/analysis/tokenfilters/synonym-tokenfilter.asciidoc
@@ -73,47 +73,45 @@ Additional settings are:
<> search analyzers to pick up
changes to synonym files. Only to be used for search analyzers.
* `expand` (defaults to `true`).
-* `lenient` (defaults to `false`). If `true` ignores exceptions while parsing the synonym configuration. It is important
-to note that only those synonym rules which cannot get parsed are ignored. For instance consider the following request:
-
-
-[source,console]
---------------------------------------------------
-PUT /test_index
-{
- "settings": {
- "index": {
- "analysis": {
- "analyzer": {
- "synonym": {
- "tokenizer": "standard",
- "filter": [ "my_stop", "synonym" ]
- }
- },
- "filter": {
- "my_stop": {
- "type": "stop",
- "stopwords": [ "bar" ]
- },
- "synonym": {
- "type": "synonym",
- "lenient": true,
- "synonyms": [ "foo, bar => baz" ]
- }
- }
- }
- }
- }
-}
---------------------------------------------------
+Expands definitions for equivalent synonym rules.
+See <>.
+* `lenient` (defaults to `false`).
+If `true` ignores errors while parsing the synonym configuration.
+It is important to note that only those synonym rules which cannot get parsed are ignored.
+See <> for an example of `lenient` behaviour for invalid synonym rules.
+
+[discrete]
+[[synonym-tokenizer-expand-equivalent-synonyms]]
+===== `expand` equivalent synonym rules
+
+The `expand` parameter controls whether to expand equivalent synonym rules.
+Consider a synonym defined like:
+
+`foo, bar, baz`
+
+Using `expand: true`, the synonym rule would be expanded into:
-With the above request the word `bar` gets skipped but a mapping `foo => baz` is still added. However, if the mapping
-being added was `foo, baz => bar` nothing would get added to the synonym list. This is because the target word for the
-mapping is itself eliminated because it was a stop word. Similarly, if the mapping was "bar, foo, baz" and `expand` was
-set to `false` no mapping would get added as when `expand=false` the target mapping is the first word. However, if
-`expand=true` then the mappings added would be equivalent to `foo, baz => foo, baz` i.e, all mappings other than the
-stop word.
+```
+foo => foo
+foo => bar
+foo => baz
+bar => foo
+bar => bar
+bar => baz
+baz => foo
+baz => bar
+baz => baz
+```
+When `expand` is set to `false`, the synonym rule is not expanded and the first synonym is treated as the canonical representation. The synonym would be equivalent to:
+
+```
+foo => foo
+bar => foo
+baz => foo
+```
+
+The `expand` parameter does not affect explicit synonym rules, like `foo, bar => baz`.
[discrete]
[[synonym-tokenizer-ignore_case-deprecated]]
@@ -135,7 +133,7 @@ To apply synonyms, you will need to include a synonym token filters into an anal
"my_analyzer": {
"type": "custom",
"tokenizer": "standard",
- "filter": ["stemmer", "synonym_graph"]
+ "filter": ["stemmer", "synonym"]
}
}
----
@@ -148,10 +146,7 @@ Order is important for your token filters.
Text will be processed first through filters preceding the synonym filter before being processed by the synonym filter.
{es} will also use the token filters preceding the synonym filter in a tokenizer chain to parse the entries in a synonym file or synonym set.
-In the above example, the synonyms graph token filter is placed after a stemmer. The stemmer will also be applied to the synonym entries.
-
-The synonym rules should not contain words that are removed by a filter that appears later in the chain (like a `stop` filter).
-Removing a term from a synonym rule means there will be no matching for it at query time.
+In the above example, the synonyms token filter is placed after a stemmer. The stemmer will also be applied to the synonym entries.
Because entries in the synonym map cannot have stacked positions, some token filters may cause issues here.
Token filters that produce multiple versions of a token may choose which version of the token to emit when parsing synonyms.
@@ -159,3 +154,59 @@ For example, `asciifolding` will only produce the folded version of the token.
Others, like `multiplexer`, `word_delimiter_graph` or `ngram` will throw an error.
If you need to build analyzers that include both multi-token filters and synonym filters, consider using the <> filter, with the multi-token filters in one branch and the synonym filter in the other.
+
+[discrete]
+[[synonym-tokenizer-stop-token-filter]]
+===== Synonyms and `stop` token filters
+
+Synonyms and <> interact with each other in the following ways:
+
+[discrete]
+====== Stop token filter *before* synonym token filter
+
+Stop words will be removed from the synonym rule definition.
+This can can cause errors on the synonym rule.
+
+[WARNING]
+====
+Invalid synonym rules can cause errors when applying analyzer changes.
+For reloadable analyzers, this prevents reloading and applying changes.
+You must correct errors in the synonym rules and reload the analyzer.
+
+An index with invalid synonym rules cannot be reopened, making it inoperable when:
+
+* A node containing the index starts
+* The index is opened from a closed state
+* A node restart occurs (which reopens the node assigned shards)
+====
+
+For *explicit synonym rules* like `foo, bar => baz` with a stop filter that removes `bar`:
+
+- If `lenient` is set to `false`, an error will be raised as `bar` would be removed from the left hand side of the synonym rule.
+- If `lenient` is set to `true`, the rule `foo => baz` will be added and `bar => baz` will be ignored.
+
+If the stop filter removed `baz` instead:
+
+- If `lenient` is set to `false`, an error will be raised as `baz` would be removed from the right hand side of the synonym rule.
+- If `lenient` is set to `true`, the synonym will have no effect as the target word is removed.
+
+For *equivalent synonym rules* like `foo, bar, baz` and `expand: true, with a stop filter that removes `bar`:
+
+- If `lenient` is set to `false`, an error will be raised as `bar` would be removed from the synonym rule.
+- If `lenient` is set to `true`, the synonyms added would be equivalent to the following synonym rules, which do not contain the removed word:
+
+```
+foo => foo
+foo => baz
+baz => foo
+baz => baz
+```
+
+[discrete]
+====== Stop token filter *after* synonym token filter
+
+The stop filter will remove the terms from the resulting synonym expansion.
+
+For example, a synonym rule like `foo, bar => baz` and a stop filter that removes `baz` will get no matches for `foo` or `bar`, as both would get expanded to `baz` which is removed by the stop filter.
+
+If the stop filter removed `foo` instead, then searching for `foo` would get expanded to `baz`, which is not removed by the stop filter thus potentially providing matches for `baz`.
diff --git a/docs/reference/analysis/tokenfilters/synonyms-format.asciidoc b/docs/reference/analysis/tokenfilters/synonyms-format.asciidoc
index 63dd72dade8d0..e780c24963312 100644
--- a/docs/reference/analysis/tokenfilters/synonyms-format.asciidoc
+++ b/docs/reference/analysis/tokenfilters/synonyms-format.asciidoc
@@ -15,7 +15,7 @@ This format uses two different definitions:
ipod, i-pod, i pod
computer, pc, laptop
----
-* Explicit mappings: Matches a group of words to other words. Words on the left hand side of the rule definition are expanded into all the possibilities described on the right hand side. Example:
+* Explicit synonyms: Matches a group of words to other words. Words on the left hand side of the rule definition are expanded into all the possibilities described on the right hand side. Example:
+
[source,synonyms]
----
diff --git a/docs/reference/api-conventions.asciidoc b/docs/reference/api-conventions.asciidoc
index 25881b707d724..f8d925945401e 100644
--- a/docs/reference/api-conventions.asciidoc
+++ b/docs/reference/api-conventions.asciidoc
@@ -334,6 +334,7 @@ All REST API parameters (both request parameters and JSON body) support
providing boolean "false" as the value `false` and boolean "true" as the
value `true`. All other values will raise an error.
+[[api-conventions-number-values]]
[discrete]
=== Number Values
diff --git a/docs/reference/autoscaling/apis/autoscaling-apis.asciidoc b/docs/reference/autoscaling/apis/autoscaling-apis.asciidoc
index 090eda5ef5436..e4da2c45ee978 100644
--- a/docs/reference/autoscaling/apis/autoscaling-apis.asciidoc
+++ b/docs/reference/autoscaling/apis/autoscaling-apis.asciidoc
@@ -4,7 +4,7 @@
NOTE: {cloud-only}
-You can use the following APIs to perform autoscaling operations.
+You can use the following APIs to perform {cloud}/ec-autoscaling.html[autoscaling operations].
[discrete]
[[autoscaling-api-top-level]]
diff --git a/docs/reference/autoscaling/apis/delete-autoscaling-policy.asciidoc b/docs/reference/autoscaling/apis/delete-autoscaling-policy.asciidoc
index 608b7bd7cb903..190428485a003 100644
--- a/docs/reference/autoscaling/apis/delete-autoscaling-policy.asciidoc
+++ b/docs/reference/autoscaling/apis/delete-autoscaling-policy.asciidoc
@@ -7,7 +7,7 @@
NOTE: {cloud-only}
-Delete autoscaling policy.
+Delete {cloud}/ec-autoscaling.html[autoscaling] policy.
[[autoscaling-delete-autoscaling-policy-request]]
==== {api-request-title}
diff --git a/docs/reference/autoscaling/apis/get-autoscaling-capacity.asciidoc b/docs/reference/autoscaling/apis/get-autoscaling-capacity.asciidoc
index 05724b9c48b6e..d635d8c8f7bd0 100644
--- a/docs/reference/autoscaling/apis/get-autoscaling-capacity.asciidoc
+++ b/docs/reference/autoscaling/apis/get-autoscaling-capacity.asciidoc
@@ -7,7 +7,7 @@
NOTE: {cloud-only}
-Get autoscaling capacity.
+Get {cloud}/ec-autoscaling.html[autoscaling] capacity.
[[autoscaling-get-autoscaling-capacity-request]]
==== {api-request-title}
diff --git a/docs/reference/autoscaling/apis/get-autoscaling-policy.asciidoc b/docs/reference/autoscaling/apis/get-autoscaling-policy.asciidoc
index ad00d69d1aeb2..973eedcb361c9 100644
--- a/docs/reference/autoscaling/apis/get-autoscaling-policy.asciidoc
+++ b/docs/reference/autoscaling/apis/get-autoscaling-policy.asciidoc
@@ -7,7 +7,7 @@
NOTE: {cloud-only}
-Get autoscaling policy.
+Get {cloud}/ec-autoscaling.html[autoscaling] policy.
[[autoscaling-get-autoscaling-policy-request]]
==== {api-request-title}
diff --git a/docs/reference/autoscaling/apis/put-autoscaling-policy.asciidoc b/docs/reference/autoscaling/apis/put-autoscaling-policy.asciidoc
index ff79def51ebb9..e564f83411eb4 100644
--- a/docs/reference/autoscaling/apis/put-autoscaling-policy.asciidoc
+++ b/docs/reference/autoscaling/apis/put-autoscaling-policy.asciidoc
@@ -7,7 +7,7 @@
NOTE: {cloud-only}
-Creates or updates an autoscaling policy.
+Creates or updates an {cloud}/ec-autoscaling.html[autoscaling] policy.
[[autoscaling-put-autoscaling-policy-request]]
==== {api-request-title}
diff --git a/docs/reference/autoscaling/deciders/fixed-decider.asciidoc b/docs/reference/autoscaling/deciders/fixed-decider.asciidoc
index c46d1dffe2cc8..5a8b009d9f063 100644
--- a/docs/reference/autoscaling/deciders/fixed-decider.asciidoc
+++ b/docs/reference/autoscaling/deciders/fixed-decider.asciidoc
@@ -6,7 +6,7 @@ experimental[]
[WARNING]
The fixed decider is intended for testing only. Do not use this decider in production.
-The `fixed` decider responds with a fixed required capacity. It is not enabled
+The {cloud}/ec-autoscaling.html[autoscaling] `fixed` decider responds with a fixed required capacity. It is not enabled
by default but can be enabled for any policy by explicitly configuring it.
==== Configuration settings
diff --git a/docs/reference/autoscaling/deciders/frozen-existence-decider.asciidoc b/docs/reference/autoscaling/deciders/frozen-existence-decider.asciidoc
index 832cf330053aa..0fc9ad444a213 100644
--- a/docs/reference/autoscaling/deciders/frozen-existence-decider.asciidoc
+++ b/docs/reference/autoscaling/deciders/frozen-existence-decider.asciidoc
@@ -2,7 +2,7 @@
[[autoscaling-frozen-existence-decider]]
=== Frozen existence decider
-The frozen existence decider (`frozen_existence`) ensures that once the first
+The {cloud}/ec-autoscaling.html[autoscaling] frozen existence decider (`frozen_existence`) ensures that once the first
index enters the frozen ILM phase, the frozen tier is scaled into existence.
The frozen existence decider is enabled for all policies governing frozen data
diff --git a/docs/reference/autoscaling/deciders/frozen-shards-decider.asciidoc b/docs/reference/autoscaling/deciders/frozen-shards-decider.asciidoc
index ab11da04c8642..1977f95797ef0 100644
--- a/docs/reference/autoscaling/deciders/frozen-shards-decider.asciidoc
+++ b/docs/reference/autoscaling/deciders/frozen-shards-decider.asciidoc
@@ -2,7 +2,7 @@
[[autoscaling-frozen-shards-decider]]
=== Frozen shards decider
-The frozen shards decider (`frozen_shards`) calculates the memory required to search
+The {cloud}/ec-autoscaling.html[autoscaling] frozen shards decider (`frozen_shards`) calculates the memory required to search
the current set of partially mounted indices in the frozen tier. Based on a
required memory amount per shard, it calculates the necessary memory in the frozen tier.
diff --git a/docs/reference/autoscaling/deciders/frozen-storage-decider.asciidoc b/docs/reference/autoscaling/deciders/frozen-storage-decider.asciidoc
index 5a10f31f1365b..3a8e7cdb518b3 100644
--- a/docs/reference/autoscaling/deciders/frozen-storage-decider.asciidoc
+++ b/docs/reference/autoscaling/deciders/frozen-storage-decider.asciidoc
@@ -2,7 +2,7 @@
[[autoscaling-frozen-storage-decider]]
=== Frozen storage decider
-The frozen storage decider (`frozen_storage`) calculates the local storage
+The {cloud}/ec-autoscaling.html[autoscaling] frozen storage decider (`frozen_storage`) calculates the local storage
required to search the current set of partially mounted indices based on a
percentage of the total data set size of such indices. It signals that
additional storage capacity is necessary when existing capacity is less than the
diff --git a/docs/reference/autoscaling/deciders/machine-learning-decider.asciidoc b/docs/reference/autoscaling/deciders/machine-learning-decider.asciidoc
index 26ced6ad7bb26..5432d96a47edb 100644
--- a/docs/reference/autoscaling/deciders/machine-learning-decider.asciidoc
+++ b/docs/reference/autoscaling/deciders/machine-learning-decider.asciidoc
@@ -2,7 +2,7 @@
[[autoscaling-machine-learning-decider]]
=== Machine learning decider
-The {ml} decider (`ml`) calculates the memory and CPU requirements to run {ml}
+The {cloud}/ec-autoscaling.html[autoscaling] {ml} decider (`ml`) calculates the memory and CPU requirements to run {ml}
jobs and trained models.
The {ml} decider is enabled for policies governing `ml` nodes.
diff --git a/docs/reference/autoscaling/deciders/proactive-storage-decider.asciidoc b/docs/reference/autoscaling/deciders/proactive-storage-decider.asciidoc
index 763f1de96f6b9..33c989f3b12eb 100644
--- a/docs/reference/autoscaling/deciders/proactive-storage-decider.asciidoc
+++ b/docs/reference/autoscaling/deciders/proactive-storage-decider.asciidoc
@@ -2,7 +2,7 @@
[[autoscaling-proactive-storage-decider]]
=== Proactive storage decider
-The proactive storage decider (`proactive_storage`) calculates the storage required to contain
+The {cloud}/ec-autoscaling.html[autoscaling] proactive storage decider (`proactive_storage`) calculates the storage required to contain
the current data set plus an estimated amount of expected additional data.
The proactive storage decider is enabled for all policies governing nodes with the `data_hot` role.
diff --git a/docs/reference/autoscaling/deciders/reactive-storage-decider.asciidoc b/docs/reference/autoscaling/deciders/reactive-storage-decider.asciidoc
index 50897178a88de..7c38df75169fd 100644
--- a/docs/reference/autoscaling/deciders/reactive-storage-decider.asciidoc
+++ b/docs/reference/autoscaling/deciders/reactive-storage-decider.asciidoc
@@ -2,7 +2,7 @@
[[autoscaling-reactive-storage-decider]]
=== Reactive storage decider
-The reactive storage decider (`reactive_storage`) calculates the storage required to contain
+The {cloud}/ec-autoscaling.html[autoscaling] reactive storage decider (`reactive_storage`) calculates the storage required to contain
the current data set. It signals that additional storage capacity is necessary
when existing capacity has been exceeded (reactively).
diff --git a/docs/reference/autoscaling/index.asciidoc b/docs/reference/autoscaling/index.asciidoc
index fbf1a9536973e..e70c464889419 100644
--- a/docs/reference/autoscaling/index.asciidoc
+++ b/docs/reference/autoscaling/index.asciidoc
@@ -4,7 +4,7 @@
NOTE: {cloud-only}
-The autoscaling feature enables an operator to configure tiers of nodes that
+The {cloud}/ec-autoscaling.html[autoscaling] feature enables an operator to configure tiers of nodes that
self-monitor whether or not they need to scale based on an operator-defined
policy. Then, via the autoscaling API, an Elasticsearch cluster can report
whether or not it needs additional resources to meet the policy. For example, an
diff --git a/docs/reference/behavioral-analytics/apis/delete-analytics-collection.asciidoc b/docs/reference/behavioral-analytics/apis/delete-analytics-collection.asciidoc
index 9b15bcca3fc85..a6894a933b460 100644
--- a/docs/reference/behavioral-analytics/apis/delete-analytics-collection.asciidoc
+++ b/docs/reference/behavioral-analytics/apis/delete-analytics-collection.asciidoc
@@ -17,7 +17,7 @@ PUT _application/analytics/my_analytics_collection
////
-Removes an Analytics Collection and its associated data stream.
+Removes a <> Collection and its associated data stream.
[[delete-analytics-collection-request]]
==== {api-request-title}
diff --git a/docs/reference/behavioral-analytics/apis/index.asciidoc b/docs/reference/behavioral-analytics/apis/index.asciidoc
index 042b50259b1bb..692d3374f89f5 100644
--- a/docs/reference/behavioral-analytics/apis/index.asciidoc
+++ b/docs/reference/behavioral-analytics/apis/index.asciidoc
@@ -9,7 +9,7 @@ beta::[]
---
-Use the following APIs to manage tasks and resources related to Behavioral Analytics:
+Use the following APIs to manage tasks and resources related to <>:
* <>
* <>
diff --git a/docs/reference/behavioral-analytics/apis/list-analytics-collection.asciidoc b/docs/reference/behavioral-analytics/apis/list-analytics-collection.asciidoc
index 8d2491ff8a6ee..14511a1258278 100644
--- a/docs/reference/behavioral-analytics/apis/list-analytics-collection.asciidoc
+++ b/docs/reference/behavioral-analytics/apis/list-analytics-collection.asciidoc
@@ -24,7 +24,7 @@ DELETE _application/analytics/my_analytics_collection2
// TEARDOWN
////
-Returns information about Analytics Collections.
+Returns information about <> Collections.
[[list-analytics-collection-request]]
==== {api-request-title}
diff --git a/docs/reference/behavioral-analytics/apis/post-analytics-collection-event.asciidoc b/docs/reference/behavioral-analytics/apis/post-analytics-collection-event.asciidoc
index 84d9cb5351799..f82717e22ed34 100644
--- a/docs/reference/behavioral-analytics/apis/post-analytics-collection-event.asciidoc
+++ b/docs/reference/behavioral-analytics/apis/post-analytics-collection-event.asciidoc
@@ -22,7 +22,7 @@ DELETE _application/analytics/my_analytics_collection
// TEARDOWN
////
-Post an event to an Analytics Collection.
+Post an event to a <> Collection.
[[post-analytics-collection-event-request]]
==== {api-request-title}
diff --git a/docs/reference/behavioral-analytics/apis/put-analytics-collection.asciidoc b/docs/reference/behavioral-analytics/apis/put-analytics-collection.asciidoc
index 48273fb3906c4..cbbab2ae3e26c 100644
--- a/docs/reference/behavioral-analytics/apis/put-analytics-collection.asciidoc
+++ b/docs/reference/behavioral-analytics/apis/put-analytics-collection.asciidoc
@@ -16,7 +16,7 @@ DELETE _application/analytics/my_analytics_collection
// TEARDOWN
////
-Creates an Analytics Collection.
+Creates a <> Collection.
[[put-analytics-collection-request]]
==== {api-request-title}
diff --git a/docs/reference/cat/component-templates.asciidoc b/docs/reference/cat/component-templates.asciidoc
index 596c86befd1b7..f87f400bb8885 100644
--- a/docs/reference/cat/component-templates.asciidoc
+++ b/docs/reference/cat/component-templates.asciidoc
@@ -6,8 +6,8 @@
[IMPORTANT]
====
-cat APIs are only intended for human consumption using the command line or {kib}
-console. They are _not_ intended for use by applications. For application
+cat APIs are only intended for human consumption using the command line or {kib}
+console. They are _not_ intended for use by applications. For application
consumption, use the <>.
====
@@ -82,8 +82,7 @@ PUT _component_template/my-template-2
"type": "keyword"
},
"created_at": {
- "type": "date",
- "format": "EEE MMM dd HH:mm:ss Z yyyy"
+ "type": "date"
}
}
}
diff --git a/docs/reference/cat/nodes.asciidoc b/docs/reference/cat/nodes.asciidoc
index fc5b01f9234e3..5f329c00efd7f 100644
--- a/docs/reference/cat/nodes.asciidoc
+++ b/docs/reference/cat/nodes.asciidoc
@@ -50,16 +50,16 @@ Valid columns are:
(Default) IP address, such as `127.0.1.1`.
`heap.percent`, `hp`, `heapPercent`::
-(Default) Maximum configured heap, such as `7`.
+(Default) Used percentage of total allocated Elasticsearch JVM heap, such as `7`. This reflects only the {es} process running within the operating system and is the most direct indicator of its JVM/heap/memory resource performance.
`heap.max`, `hm`, `heapMax`::
-(Default) Total heap, such as `4gb`.
+Total heap, such as `4gb`.
`ram.percent`, `rp`, `ramPercent`::
-(Default) Used total memory percentage, such as `47`.
+(Default) Used percentage of total operating system's memory, such as `47`. This reflects all processes running on operating system instead of only {es} and is not guaranteed to correlate to its performance.
`file_desc.percent`, `fdp`, `fileDescriptorPercent`::
-(Default) Used file descriptors percentage, such as `1`.
+Used file descriptors percentage, such as `1`.
`node.role`, `r`, `role`, `nodeRole`::
(Default) Roles of the node.
@@ -138,16 +138,16 @@ Used file descriptors, such as `123`.
Maximum number of file descriptors, such as `1024`.
`cpu`::
-Recent system CPU usage as percent, such as `12`.
+(Default) Recent system CPU usage as percent, such as `12`.
`load_1m`, `l`::
-Most recent load average, such as `0.22`.
+(Default) Most recent load average, such as `0.22`.
`load_5m`, `l`::
-Load average for the last five minutes, such as `0.78`.
+(Default) Load average for the last five minutes, such as `0.78`.
`load_15m`, `l`::
-Load average for the last fifteen minutes, such as `1.24`.
+(Default) Load average for the last fifteen minutes, such as `1.24`.
`uptime`, `u`::
Node uptime, such as `17.3m`.
diff --git a/docs/reference/cat/recovery.asciidoc b/docs/reference/cat/recovery.asciidoc
index 058f4e69ae8e3..c3292fc9971ee 100644
--- a/docs/reference/cat/recovery.asciidoc
+++ b/docs/reference/cat/recovery.asciidoc
@@ -39,7 +39,7 @@ The cat recovery API returns information about shard recoveries, both
ongoing and completed. It is a more compact view of the JSON
<> API.
-include::{es-ref-dir}/indices/recovery.asciidoc[tag=shard-recovery-desc]
+include::{es-ref-dir}/modules/shard-recovery-desc.asciidoc[]
[[cat-recovery-path-params]]
diff --git a/docs/reference/ccr/apis/auto-follow/delete-auto-follow-pattern.asciidoc b/docs/reference/ccr/apis/auto-follow/delete-auto-follow-pattern.asciidoc
index 1c72fb8742b93..b510163bab50b 100644
--- a/docs/reference/ccr/apis/auto-follow/delete-auto-follow-pattern.asciidoc
+++ b/docs/reference/ccr/apis/auto-follow/delete-auto-follow-pattern.asciidoc
@@ -5,7 +5,7 @@
Delete auto-follow pattern
++++
-Delete auto-follow patterns.
+Delete {ccr} <>.
[[ccr-delete-auto-follow-pattern-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/auto-follow/get-auto-follow-pattern.asciidoc b/docs/reference/ccr/apis/auto-follow/get-auto-follow-pattern.asciidoc
index 46ef288b05088..a2969e993ddfb 100644
--- a/docs/reference/ccr/apis/auto-follow/get-auto-follow-pattern.asciidoc
+++ b/docs/reference/ccr/apis/auto-follow/get-auto-follow-pattern.asciidoc
@@ -5,7 +5,7 @@
Get auto-follow pattern
++++
-Get auto-follow patterns.
+Get {ccr} <>.
[[ccr-get-auto-follow-pattern-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/auto-follow/pause-auto-follow-pattern.asciidoc b/docs/reference/ccr/apis/auto-follow/pause-auto-follow-pattern.asciidoc
index 1e64ab813e2ad..c5ae5a7b4af9d 100644
--- a/docs/reference/ccr/apis/auto-follow/pause-auto-follow-pattern.asciidoc
+++ b/docs/reference/ccr/apis/auto-follow/pause-auto-follow-pattern.asciidoc
@@ -5,7 +5,7 @@
Pause auto-follow pattern
++++
-Pauses an auto-follow pattern.
+Pauses a {ccr} <>.
[[ccr-pause-auto-follow-pattern-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/auto-follow/put-auto-follow-pattern.asciidoc b/docs/reference/ccr/apis/auto-follow/put-auto-follow-pattern.asciidoc
index d08997068f705..6769f21ca5cef 100644
--- a/docs/reference/ccr/apis/auto-follow/put-auto-follow-pattern.asciidoc
+++ b/docs/reference/ccr/apis/auto-follow/put-auto-follow-pattern.asciidoc
@@ -5,7 +5,7 @@
Create auto-follow pattern
++++
-Creates an auto-follow pattern.
+Creates a {ccr} <>.
[[ccr-put-auto-follow-pattern-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/auto-follow/resume-auto-follow-pattern.asciidoc b/docs/reference/ccr/apis/auto-follow/resume-auto-follow-pattern.asciidoc
index 04da9b4a35ba0..a580bb3838f9b 100644
--- a/docs/reference/ccr/apis/auto-follow/resume-auto-follow-pattern.asciidoc
+++ b/docs/reference/ccr/apis/auto-follow/resume-auto-follow-pattern.asciidoc
@@ -5,7 +5,7 @@
Resume auto-follow pattern
++++
-Resumes an auto-follow pattern.
+Resumes a {ccr} <>.
[[ccr-resume-auto-follow-pattern-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/ccr-apis.asciidoc b/docs/reference/ccr/apis/ccr-apis.asciidoc
index 0c9f033639eda..ae94e1931af85 100644
--- a/docs/reference/ccr/apis/ccr-apis.asciidoc
+++ b/docs/reference/ccr/apis/ccr-apis.asciidoc
@@ -2,7 +2,7 @@
[[ccr-apis]]
== {ccr-cap} APIs
-You can use the following APIs to perform {ccr} operations.
+You can use the following APIs to perform <> operations.
[discrete]
[[ccr-api-top-level]]
diff --git a/docs/reference/ccr/apis/follow/get-follow-info.asciidoc b/docs/reference/ccr/apis/follow/get-follow-info.asciidoc
index 68fd6e210f884..6c049d9c92b59 100644
--- a/docs/reference/ccr/apis/follow/get-follow-info.asciidoc
+++ b/docs/reference/ccr/apis/follow/get-follow-info.asciidoc
@@ -5,7 +5,7 @@
Get follower info
++++
-Retrieves information about all follower indices.
+Retrieves information about all <> follower indices.
[[ccr-get-follow-info-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/follow/get-follow-stats.asciidoc b/docs/reference/ccr/apis/follow/get-follow-stats.asciidoc
index 72224cc7f51f4..4892f86b3523d 100644
--- a/docs/reference/ccr/apis/follow/get-follow-stats.asciidoc
+++ b/docs/reference/ccr/apis/follow/get-follow-stats.asciidoc
@@ -5,7 +5,7 @@
Get follower stats
++++
-Get follower stats.
+Get <> follower stats.
[[ccr-get-follow-stats-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/follow/post-forget-follower.asciidoc b/docs/reference/ccr/apis/follow/post-forget-follower.asciidoc
index ea7e8640056bf..1917c08d6640d 100644
--- a/docs/reference/ccr/apis/follow/post-forget-follower.asciidoc
+++ b/docs/reference/ccr/apis/follow/post-forget-follower.asciidoc
@@ -5,7 +5,7 @@
Forget follower
++++
-Removes the follower retention leases from the leader.
+Removes the <> follower retention leases from the leader.
[[ccr-post-forget-follower-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/follow/post-pause-follow.asciidoc b/docs/reference/ccr/apis/follow/post-pause-follow.asciidoc
index a4ab69aba8d84..6d4730d10efe6 100644
--- a/docs/reference/ccr/apis/follow/post-pause-follow.asciidoc
+++ b/docs/reference/ccr/apis/follow/post-pause-follow.asciidoc
@@ -5,7 +5,7 @@
Pause follower
++++
-Pauses a follower index.
+Pauses a <> follower index.
[[ccr-post-pause-follow-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/follow/post-resume-follow.asciidoc b/docs/reference/ccr/apis/follow/post-resume-follow.asciidoc
index 47ba51a3fb8a0..b023a8cb5cb70 100644
--- a/docs/reference/ccr/apis/follow/post-resume-follow.asciidoc
+++ b/docs/reference/ccr/apis/follow/post-resume-follow.asciidoc
@@ -5,7 +5,7 @@
Resume follower
++++
-Resumes a follower index.
+Resumes a <> follower index.
[[ccr-post-resume-follow-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/follow/post-unfollow.asciidoc b/docs/reference/ccr/apis/follow/post-unfollow.asciidoc
index b96777b455d3b..dab11ef9e7a54 100644
--- a/docs/reference/ccr/apis/follow/post-unfollow.asciidoc
+++ b/docs/reference/ccr/apis/follow/post-unfollow.asciidoc
@@ -5,7 +5,7 @@
Unfollow
++++
-Converts a follower index to a regular index.
+Converts a <> follower index to a regular index.
[[ccr-post-unfollow-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/follow/put-follow.asciidoc b/docs/reference/ccr/apis/follow/put-follow.asciidoc
index eb83e2a13dcf1..b7ae9ac987474 100644
--- a/docs/reference/ccr/apis/follow/put-follow.asciidoc
+++ b/docs/reference/ccr/apis/follow/put-follow.asciidoc
@@ -5,7 +5,7 @@
Create follower
++++
-Creates a follower index.
+Creates a <> follower index.
[[ccr-put-follow-request]]
==== {api-request-title}
diff --git a/docs/reference/ccr/apis/get-ccr-stats.asciidoc b/docs/reference/ccr/apis/get-ccr-stats.asciidoc
index 128df5e47c777..92e6bae0bdce8 100644
--- a/docs/reference/ccr/apis/get-ccr-stats.asciidoc
+++ b/docs/reference/ccr/apis/get-ccr-stats.asciidoc
@@ -6,7 +6,7 @@
Get {ccr-init} stats
++++
-Get {ccr} stats.
+Get <> stats.
[[ccr-get-stats-request]]
==== {api-request-title}
diff --git a/docs/reference/cluster/allocation-explain.asciidoc b/docs/reference/cluster/allocation-explain.asciidoc
index 0b0fde6546c29..7547dd74c5ecd 100644
--- a/docs/reference/cluster/allocation-explain.asciidoc
+++ b/docs/reference/cluster/allocation-explain.asciidoc
@@ -4,7 +4,7 @@
Cluster allocation explain
++++
-Provides an explanation for a shard's current allocation.
+Provides an explanation for a shard's current <>.
[source,console]
----
@@ -81,6 +81,7 @@ you might expect otherwise.
===== Unassigned primary shard
+====== Conflicting settings
The following request gets an allocation explanation for an unassigned primary
shard.
@@ -158,6 +159,56 @@ node.
<5> The decider which led to the `no` decision for the node.
<6> An explanation as to why the decider returned a `no` decision, with a helpful hint pointing to the setting that led to the decision. In this example, a newly created index has <> that requires that it only be allocated to a node named `nonexistent_node`, which does not exist, so the index is unable to allocate.
+====== Maximum number of retries exceeded
+
+The following response contains an allocation explanation for an unassigned
+primary shard that has reached the maximum number of allocation retry attempts.
+
+[source,js]
+----
+{
+ "index" : "my-index-000001",
+ "shard" : 0,
+ "primary" : true,
+ "current_state" : "unassigned",
+ "unassigned_info" : {
+ "at" : "2017-01-04T18:03:28.464Z",
+ "failed shard on node [mEKjwwzLT1yJVb8UxT6anw]: failed recovery, failure RecoveryFailedException",
+ "reason": "ALLOCATION_FAILED",
+ "failed_allocation_attempts": 5,
+ "last_allocation_status": "no",
+ },
+ "can_allocate": "no",
+ "allocate_explanation": "cannot allocate because allocation is not permitted to any of the nodes",
+ "node_allocation_decisions" : [
+ {
+ "node_id" : "3sULLVJrRneSg0EfBB-2Ew",
+ "node_name" : "node_t0",
+ "transport_address" : "127.0.0.1:9400",
+ "roles" : ["data_content", "data_hot"],
+ "node_decision" : "no",
+ "store" : {
+ "matching_size" : "4.2kb",
+ "matching_size_in_bytes" : 4325
+ },
+ "deciders" : [
+ {
+ "decider": "max_retry",
+ "decision" : "NO",
+ "explanation": "shard has exceeded the maximum number of retries [5] on failed allocation attempts - manually call [/_cluster/reroute?retry_failed=true] to retry, [unassigned_info[[reason=ALLOCATION_FAILED], at[2024-07-30T21:04:12.166Z], failed_attempts[5], failed_nodes[[mEKjwwzLT1yJVb8UxT6anw]], delayed=false, details[failed shard on node [mEKjwwzLT1yJVb8UxT6anw]: failed recovery, failure RecoveryFailedException], allocation_status[deciders_no]]]"
+ }
+ ]
+ }
+ ]
+}
+----
+// NOTCONSOLE
+
+If decider message indicates a transient allocation issue, use
+<> to retry allocation.
+
+====== No valid shard copy
+
The following response contains an allocation explanation for an unassigned
primary shard that was previously allocated.
@@ -184,6 +235,8 @@ TIP: If a shard is unassigned with an allocation status of `no_valid_shard_copy`
===== Unassigned replica shard
+====== Allocation delayed
+
The following response contains an allocation explanation for a replica that's
unassigned due to <>.
@@ -241,8 +294,52 @@ unassigned due to <>.
<2> The remaining delay before allocating the replica shard.
<3> Information about the shard data found on a node.
+====== Allocation throttled
+
+The following response contains an allocation explanation for a replica that's
+queued to allocate but currently waiting on other queued shards.
+
+[source,js]
+----
+{
+ "index" : "my-index-000001",
+ "shard" : 0,
+ "primary" : false,
+ "current_state" : "unassigned",
+ "unassigned_info" : {
+ "reason" : "NODE_LEFT",
+ "at" : "2017-01-04T18:53:59.498Z",
+ "details" : "node_left[G92ZwuuaRY-9n8_tc-IzEg]",
+ "last_allocation_status" : "no_attempt"
+ },
+ "can_allocate": "throttled",
+ "allocate_explanation": "Elasticsearch is currently busy with other activities. It expects to be able to allocate this shard when those activities finish. Please wait.",
+ "node_allocation_decisions" : [
+ {
+ "node_id" : "3sULLVJrRneSg0EfBB-2Ew",
+ "node_name" : "node_t0",
+ "transport_address" : "127.0.0.1:9400",
+ "roles" : ["data_content", "data_hot"],
+ "node_decision" : "no",
+ "deciders" : [
+ {
+ "decider": "throttling",
+ "decision": "THROTTLE",
+ "explanation": "reached the limit of incoming shard recoveries [2], cluster setting [cluster.routing.allocation.node_concurrent_incoming_recoveries=2] (can also be set via [cluster.routing.allocation.node_concurrent_recoveries])"
+ }
+ ]
+ }
+ ]
+}
+----
+// NOTCONSOLE
+
+This is a transient message that might appear when a large amount of shards are allocating.
+
===== Assigned shard
+====== Cannot remain on current node
+
The following response contains an allocation explanation for an assigned shard.
The response indicates the shard is not allowed to remain on its current node
and must be reallocated.
@@ -295,6 +392,8 @@ and must be reallocated.
<2> The deciders that factored into the decision of why the shard is not allowed to remain on its current node.
<3> Whether the shard is allowed to be allocated to another node.
+====== Must remain on current node
+
The following response contains an allocation explanation for a shard that must
remain on its current node. Moving the shard to another node would not improve
cluster balance.
@@ -338,7 +437,7 @@ cluster balance.
===== No arguments
If you call the API with no arguments, {es} retrieves an allocation explanation
-for an arbitrary unassigned primary or replica shard.
+for an arbitrary unassigned primary or replica shard, returning any unassigned primary shards first.
[source,console]
----
diff --git a/docs/reference/cluster/delete-desired-balance.asciidoc b/docs/reference/cluster/delete-desired-balance.asciidoc
index f81dcab011da4..c67834269e505 100644
--- a/docs/reference/cluster/delete-desired-balance.asciidoc
+++ b/docs/reference/cluster/delete-desired-balance.asciidoc
@@ -6,7 +6,7 @@
NOTE: {cloud-only}
-Discards the current desired balance and computes a new desired balance starting from the current allocation of shards.
+Discards the current <> and computes a new desired balance starting from the current allocation of shards.
This can sometimes help {es} find a desired balance which needs fewer shard movements to achieve, especially if the
cluster has experienced changes so substantial that the current desired balance is no longer optimal without {es} having
detected that the current desired balance will take more shard movements to achieve than needed. However, this API
diff --git a/docs/reference/cluster/get-desired-balance.asciidoc b/docs/reference/cluster/get-desired-balance.asciidoc
index 3fd87dcfedc4f..74afdaa52daf1 100644
--- a/docs/reference/cluster/get-desired-balance.asciidoc
+++ b/docs/reference/cluster/get-desired-balance.asciidoc
@@ -8,7 +8,7 @@ NOTE: {cloud-only}
Exposes:
-* the desired balance computation and reconciliation stats
+* the <> computation and reconciliation stats
* balancing stats such as distribution of shards, disk and ingest forecasts
across nodes and data tiers (based on the current cluster state)
* routing table with each shard current and desired location
diff --git a/docs/reference/commands/cli-jvm-options.asciidoc b/docs/reference/commands/cli-jvm-options.asciidoc
index 546884f428c12..0428ead60b626 100644
--- a/docs/reference/commands/cli-jvm-options.asciidoc
+++ b/docs/reference/commands/cli-jvm-options.asciidoc
@@ -3,7 +3,7 @@
==== JVM options
CLI tools run with 64MB of heap. For most tools, this value is fine. However, if
-needed this can be overriden by setting the `CLI_JAVA_OPTS` environment variable.
+needed this can be overridden by setting the `CLI_JAVA_OPTS` environment variable.
For example, the following increases the heap size used by the
`pass:a[elasticsearch-{tool-name}]` tool to 1GB.
diff --git a/docs/reference/connector/apis/connector-apis.asciidoc b/docs/reference/connector/apis/connector-apis.asciidoc
index 41186ff6326f2..d0f30e57744cd 100644
--- a/docs/reference/connector/apis/connector-apis.asciidoc
+++ b/docs/reference/connector/apis/connector-apis.asciidoc
@@ -82,7 +82,7 @@ beta:[]
preview::[]
-*Connector Service APIs* are a subset of Connector API endpoints, that represent framework-level operations defined in the https://github.com/elastic/connectors/blob/main/docs/CONNECTOR_PROTOCOL.md[Connector Protocol]. These APIs are not intended for direct connector management by users but are there to support the implementation of services that utilize the Conector Protocol to communicate with {es}.
+*Connector Service APIs* are a subset of Connector API endpoints, that represent framework-level operations defined in the https://github.com/elastic/connectors/blob/main/docs/CONNECTOR_PROTOCOL.md[Connector Protocol]. These APIs are not intended for direct connector management by users but are there to support the implementation of services that utilize the Connector Protocol to communicate with {es}.
[TIP]
====
diff --git a/docs/reference/connector/apis/create-connector-api.asciidoc b/docs/reference/connector/apis/create-connector-api.asciidoc
index 9bd49a3c5ef94..9564060cb07cb 100644
--- a/docs/reference/connector/apis/create-connector-api.asciidoc
+++ b/docs/reference/connector/apis/create-connector-api.asciidoc
@@ -115,7 +115,7 @@ PUT _connector/my-connector
"name": "My Connector",
"description": "My Connector to sync data to Elastic index from Google Drive",
"service_type": "google_drive",
- "language": "english"
+ "language": "en"
}
----
diff --git a/docs/reference/data-streams/change-mappings-and-settings.asciidoc b/docs/reference/data-streams/change-mappings-and-settings.asciidoc
index 076b315558b60..1290f289e5bbd 100644
--- a/docs/reference/data-streams/change-mappings-and-settings.asciidoc
+++ b/docs/reference/data-streams/change-mappings-and-settings.asciidoc
@@ -5,7 +5,7 @@
[[data-streams-change-mappings-and-settings]]
=== Change mappings and settings for a data stream
-Each data stream has a <> has a <>. Mappings and index settings from this template are applied to new
backing indices created for the stream. This includes the stream's first
backing index, which is auto-generated when the stream is created.
diff --git a/docs/reference/data-streams/data-streams.asciidoc b/docs/reference/data-streams/data-streams.asciidoc
index 9c7137563caef..1484e21febdb3 100644
--- a/docs/reference/data-streams/data-streams.asciidoc
+++ b/docs/reference/data-streams/data-streams.asciidoc
@@ -157,4 +157,5 @@ include::set-up-a-data-stream.asciidoc[]
include::use-a-data-stream.asciidoc[]
include::change-mappings-and-settings.asciidoc[]
include::tsds.asciidoc[]
+include::logs.asciidoc[]
include::lifecycle/index.asciidoc[]
diff --git a/docs/reference/data-streams/downsampling-manual.asciidoc b/docs/reference/data-streams/downsampling-manual.asciidoc
index 771a08d97d949..44ae77d072034 100644
--- a/docs/reference/data-streams/downsampling-manual.asciidoc
+++ b/docs/reference/data-streams/downsampling-manual.asciidoc
@@ -14,7 +14,7 @@ DELETE _ingest/pipeline/my-timestamp-pipeline
// TEARDOWN
////
-The recommended way to downsample a time series data stream (TSDS) is
+The recommended way to <> a <> is
<>. However, if
you're not using ILM, you can downsample a TSDS manually. This guide shows you
how, using typical Kubernetes cluster monitoring data.
@@ -32,7 +32,7 @@ To test out manual downsampling, follow these steps:
==== Prerequisites
* Refer to the <>.
-* It is not possible to downsample a data stream directly, nor
+* It is not possible to downsample a <> directly, nor
multiple indices at once. It's only possible to downsample one time series index
(TSDS backing index).
* In order to downsample an index, it needs to be read-only. For a TSDS write
diff --git a/docs/reference/data-streams/lifecycle/apis/delete-lifecycle.asciidoc b/docs/reference/data-streams/lifecycle/apis/delete-lifecycle.asciidoc
index f20c949c2fbc8..315f7fa85e45f 100644
--- a/docs/reference/data-streams/lifecycle/apis/delete-lifecycle.asciidoc
+++ b/docs/reference/data-streams/lifecycle/apis/delete-lifecycle.asciidoc
@@ -4,7 +4,7 @@
Delete Data Stream Lifecycle
++++
-Deletes the lifecycle from a set of data streams.
+Deletes the <> from a set of data streams.
[[delete-lifecycle-api-prereqs]]
==== {api-prereq-title}
diff --git a/docs/reference/data-streams/lifecycle/apis/explain-lifecycle.asciidoc b/docs/reference/data-streams/lifecycle/apis/explain-lifecycle.asciidoc
index 7968bb78939e8..2b15886ebe192 100644
--- a/docs/reference/data-streams/lifecycle/apis/explain-lifecycle.asciidoc
+++ b/docs/reference/data-streams/lifecycle/apis/explain-lifecycle.asciidoc
@@ -4,7 +4,7 @@
Explain Data Stream Lifecycle
++++
-Retrieves the current data stream lifecycle status for one or more data stream backing indices.
+Retrieves the current <> status for one or more data stream backing indices.
[[explain-lifecycle-api-prereqs]]
==== {api-prereq-title}
diff --git a/docs/reference/data-streams/lifecycle/apis/get-lifecycle-stats.asciidoc b/docs/reference/data-streams/lifecycle/apis/get-lifecycle-stats.asciidoc
index a99fa19d9db8d..f48fa1eb52daa 100644
--- a/docs/reference/data-streams/lifecycle/apis/get-lifecycle-stats.asciidoc
+++ b/docs/reference/data-streams/lifecycle/apis/get-lifecycle-stats.asciidoc
@@ -4,7 +4,7 @@
Get Data Stream Lifecycle
++++
-Gets stats about the execution of data stream lifecycle.
+Gets stats about the execution of <>.
[[get-lifecycle-stats-api-prereqs]]
==== {api-prereq-title}
diff --git a/docs/reference/data-streams/lifecycle/apis/get-lifecycle.asciidoc b/docs/reference/data-streams/lifecycle/apis/get-lifecycle.asciidoc
index 331285af395b6..c83572a4e0795 100644
--- a/docs/reference/data-streams/lifecycle/apis/get-lifecycle.asciidoc
+++ b/docs/reference/data-streams/lifecycle/apis/get-lifecycle.asciidoc
@@ -4,7 +4,7 @@
Get Data Stream Lifecycle
++++
-Gets the lifecycle of a set of data streams.
+Gets the <> of a set of <>.
[[get-lifecycle-api-prereqs]]
==== {api-prereq-title}
diff --git a/docs/reference/data-streams/lifecycle/apis/put-lifecycle.asciidoc b/docs/reference/data-streams/lifecycle/apis/put-lifecycle.asciidoc
index 6bd157071f54e..c60c105e818ab 100644
--- a/docs/reference/data-streams/lifecycle/apis/put-lifecycle.asciidoc
+++ b/docs/reference/data-streams/lifecycle/apis/put-lifecycle.asciidoc
@@ -4,7 +4,7 @@
Put Data Stream Lifecycle
++++
-Configures the data stream lifecycle for the targeted data streams.
+Configures the data stream <> for the targeted <>.
[[put-lifecycle-api-prereqs]]
==== {api-prereq-title}
@@ -54,7 +54,7 @@ duration the document could be deleted. When empty, every document in this data
`enabled`::
(Optional, boolean)
-If defined, it turns data streqm lifecycle on/off (`true`/`false`) for this data stream.
+If defined, it turns data stream lifecycle on/off (`true`/`false`) for this data stream.
A data stream lifecycle that's disabled (`enabled: false`) will have no effect on the
data stream. Defaults to `true`.
diff --git a/docs/reference/data-streams/lifecycle/tutorial-migrate-data-stream-from-ilm-to-dsl.asciidoc b/docs/reference/data-streams/lifecycle/tutorial-migrate-data-stream-from-ilm-to-dsl.asciidoc
index 5b2e2a1ec70a2..8d959d8f4ad84 100644
--- a/docs/reference/data-streams/lifecycle/tutorial-migrate-data-stream-from-ilm-to-dsl.asciidoc
+++ b/docs/reference/data-streams/lifecycle/tutorial-migrate-data-stream-from-ilm-to-dsl.asciidoc
@@ -2,8 +2,8 @@
[[tutorial-migrate-data-stream-from-ilm-to-dsl]]
=== Tutorial: Migrate ILM managed data stream to data stream lifecycle
-In this tutorial we'll look at migrating an existing data stream from Index Lifecycle Management ({ilm-init}) to
-data stream lifecycle. The existing {ilm-init} managed backing indices will continue
+In this tutorial we'll look at migrating an existing data stream from <> to
+<>. The existing {ilm-init} managed backing indices will continue
to be managed by {ilm-init} until they age out and get deleted by {ilm-init}; however,
the new backing indices will be managed by data stream lifecycle.
This way, a data stream is gradually migrated away from being managed by {ilm-init} to
diff --git a/docs/reference/data-streams/logs.asciidoc b/docs/reference/data-streams/logs.asciidoc
new file mode 100644
index 0000000000000..e870289bcf7be
--- /dev/null
+++ b/docs/reference/data-streams/logs.asciidoc
@@ -0,0 +1,52 @@
+[[logs-data-stream]]
+== Logs data stream
+
+preview::[Logs data streams and the logsdb index mode are in tech preview and may be changed or removed in the future. Don't use logs data streams or logsdb index mode in production.]
+
+A logs data stream is a data stream type that stores log data more efficiently.
+
+In benchmarks, log data stored in a logs data stream used ~2.5 times less disk space than a regular data
+stream. The exact impact will vary depending on your data set.
+
+The following features are enabled in a logs data stream:
+
+* <>, which omits storing the `_source` field. When the document source is requested, it is synthesized from document fields upon retrieval.
+
+* Index sorting. This yields a lower storage footprint. By default indices are sorted by `host.name` and `@timestamp` fields at index time.
+
+* More space efficient compression for fields with <> enabled.
+
+[discrete]
+[[how-to-use-logsds]]
+=== Create a logs data stream
+
+To create a logs data stream, set your index template `index.mode` to `logsdb`:
+
+[source,console]
+----
+PUT _index_template/my-index-template
+{
+ "index_patterns": ["logs-*"],
+ "data_stream": { },
+ "template": {
+ "settings": {
+ "index.mode": "logsdb" <1>
+ }
+ },
+ "priority": 101 <2>
+}
+----
+// TEST
+
+<1> The index mode setting.
+<2> The index template priority. By default, Elasticsearch ships with an index template with a `logs-*-*` pattern with a priority of 100. You need to define a priority higher than 100 to ensure that this index template gets selected over the default index template for the `logs-*-*` pattern. See the <> for more information.
+
+After the index template is created, new indices that use the template will be configured as a logs data stream. You can start indexing data and <>.
+
+////
+[source,console]
+----
+DELETE _index_template/my-index-template
+----
+// TEST[continued]
+////
diff --git a/docs/reference/data-streams/modify-data-streams-api.asciidoc b/docs/reference/data-streams/modify-data-streams-api.asciidoc
index f05e76e67c32f..2da869083df22 100644
--- a/docs/reference/data-streams/modify-data-streams-api.asciidoc
+++ b/docs/reference/data-streams/modify-data-streams-api.asciidoc
@@ -4,7 +4,7 @@
Modify data streams
++++
-Performs one or more data stream modification actions in a single atomic
+Performs one or more <> modification actions in a single atomic
operation.
[source,console]
diff --git a/docs/reference/data-streams/promote-data-stream-api.asciidoc b/docs/reference/data-streams/promote-data-stream-api.asciidoc
index 281e9b549abcb..111c7a2256f8a 100644
--- a/docs/reference/data-streams/promote-data-stream-api.asciidoc
+++ b/docs/reference/data-streams/promote-data-stream-api.asciidoc
@@ -5,7 +5,7 @@
Promote data stream
++++
-The purpose of the promote data stream api is to turn
+The purpose of the promote <> API is to turn
a data stream that is replicated by CCR into a regular
data stream.
diff --git a/docs/reference/data-streams/tsds-reindex.asciidoc b/docs/reference/data-streams/tsds-reindex.asciidoc
index ea4ba16df5c4a..9d6594db4e779 100644
--- a/docs/reference/data-streams/tsds-reindex.asciidoc
+++ b/docs/reference/data-streams/tsds-reindex.asciidoc
@@ -9,7 +9,7 @@
[[tsds-reindex-intro]]
==== Introduction
-With reindexing, you can copy documents from an old time-series data stream (TSDS) to a new one. Data streams support
+With reindexing, you can copy documents from an old <> to a new one. Data streams support
reindexing in general, with a few <>. Still, time-series data streams
introduce additional challenges due to tight control on the accepted timestamp range for each backing index they
contain. Direct use of the reindex API would likely error out due to attempting to insert documents with timestamps that are
diff --git a/docs/reference/data-streams/tsds.asciidoc b/docs/reference/data-streams/tsds.asciidoc
index 460048d8ccbc9..de89fa1ca3f31 100644
--- a/docs/reference/data-streams/tsds.asciidoc
+++ b/docs/reference/data-streams/tsds.asciidoc
@@ -53,8 +53,9 @@ shard segments by `_tsid` and `@timestamp`.
documents, the document `_id` is a hash of the document's dimensions and
`@timestamp`. A TSDS doesn't support custom document `_id` values.
+
* A TSDS uses <>, and as a result is
-subject to a number of <>.
+subject to some <> and <> applied to the `_source` field.
NOTE: A time series index can contain fields other than dimensions or metrics.
diff --git a/docs/reference/eql/eql-apis.asciidoc b/docs/reference/eql/eql-apis.asciidoc
index d3f591ccfe6c1..e8cc2b21492ae 100644
--- a/docs/reference/eql/eql-apis.asciidoc
+++ b/docs/reference/eql/eql-apis.asciidoc
@@ -1,7 +1,7 @@
[[eql-apis]]
== EQL APIs
-Event Query Language (EQL) is a query language for event-based time series data,
+<> is a query language for event-based time series data,
such as logs, metrics, and traces. For an overview of EQL and related tutorials,
see <>.
diff --git a/docs/reference/esql/esql-across-clusters.asciidoc b/docs/reference/esql/esql-across-clusters.asciidoc
index 6231b4f4f0a69..d4e36cd41e046 100644
--- a/docs/reference/esql/esql-across-clusters.asciidoc
+++ b/docs/reference/esql/esql-across-clusters.asciidoc
@@ -49,11 +49,6 @@ Refer to <> for prerequisi
[[esql-ccs-security-model-api-key]]
===== API key authentication
-[NOTE]
-====
-`ENRICH` is *not supported* in this version when using {esql} with the API key based security model.
-====
-
The following information pertains to using {esql} across clusters with the <>. You'll need to follow the steps on that page for the *full setup instructions*. This page only contains additional information specific to {esql}.
API key based cross-cluster search (CCS) enables more granular control over allowed actions between clusters.
@@ -66,6 +61,7 @@ You will need to:
Using {esql} with the API key based security model requires some additional permissions that may not be needed when using the traditional query DSL based search.
The following example API call creates a role that can query remote indices using {esql} when using the API key based security model.
+The final privilege, `remote_cluster`, is required to allow remote enrich operations.
[source,console]
----
@@ -84,7 +80,17 @@ POST /_security/role/remote1
"privileges": [ "read","read_cross_cluster" ], <4>
"clusters" : ["my_remote_cluster"] <5>
}
- ]
+ ],
+ "remote_cluster": [ <6>
+ {
+ "privileges": [
+ "monitor_enrich"
+ ],
+ "clusters": [
+ "my_remote_cluster"
+ ]
+ }
+ ]
}
----
@@ -95,6 +101,7 @@ POST /_security/role/remote1
<5> The remote clusters to which these privileges apply.
This remote cluster must be configured with a <> and connected to the remote cluster before the remote index can be queried.
Verify connection using the <> API.
+<6> Required to allow remote enrichment. Without this, the user cannot read from the `.enrich` indices on the remote cluster. The `remote_cluster` security privilege was introduced in version *8.15.0*.
You will then need a user or API key with the permissions you created above. The following example API call creates a user with the `remote1` role.
@@ -109,6 +116,11 @@ POST /_security/user/remote_user
Remember that all cross-cluster requests from the local cluster are bound by the cross cluster API key’s privileges, which are controlled by the remote cluster's administrator.
+[TIP]
+====
+Cross cluster API keys created in versions prior to 8.15.0 will need to replaced or updated to add the new permissions required for {esql} with ENRICH.
+====
+
[discrete]
[[ccq-remote-cluster-setup]]
==== Remote cluster setup
@@ -169,9 +181,11 @@ clusters, aiming to minimize computation or inter-cluster data transfer. Ensurin
the policy exists with consistent data on both the local cluster and the remote
clusters is critical for ES|QL to produce a consistent query result.
-[NOTE]
+[TIP]
====
-Enrich across clusters is *not supported* in this version when using {esql} with the <>.
+Enrich in {esql} across clusters using the API key based security model was introduced in version *8.15.0*.
+Cross cluster API keys created in versions prior to 8.15.0 will need to replaced or updated to use the new required permissions.
+Refer to the example in the <> section.
====
In the following example, the enrich with `hosts` policy can be executed on
diff --git a/docs/reference/esql/esql-apis.asciidoc b/docs/reference/esql/esql-apis.asciidoc
index 686a71506bc14..8586cd1ae6bce 100644
--- a/docs/reference/esql/esql-apis.asciidoc
+++ b/docs/reference/esql/esql-apis.asciidoc
@@ -1,7 +1,7 @@
[[esql-apis]]
== {esql} APIs
-The {es} Query Language ({esql}) provides a powerful way to filter, transform,
+The <> provides a powerful way to filter, transform,
and analyze data stored in {es}, and in the future in other runtimes. For an
overview of {esql} and related tutorials, see <>.
diff --git a/docs/reference/esql/esql-async-query-delete-api.asciidoc b/docs/reference/esql/esql-async-query-delete-api.asciidoc
index 90f8c06b9124a..5cad566f7f9c0 100644
--- a/docs/reference/esql/esql-async-query-delete-api.asciidoc
+++ b/docs/reference/esql/esql-async-query-delete-api.asciidoc
@@ -4,7 +4,7 @@
{esql} async query delete API
++++
-The {esql} async query delete API is used to manually delete an async query
+The <> async query delete API is used to manually delete an async query
by ID. If the query is still running, the query will be cancelled. Otherwise,
the stored results are deleted.
diff --git a/docs/reference/esql/esql-limitations.asciidoc b/docs/reference/esql/esql-limitations.asciidoc
index 11e3fd7ae9883..8accc7550edbb 100644
--- a/docs/reference/esql/esql-limitations.asciidoc
+++ b/docs/reference/esql/esql-limitations.asciidoc
@@ -85,6 +85,11 @@ Some <> are not supported in all contexts:
** `cartesian_point`
** `cartesian_shape`
+In addition, when <>,
+it's possible for the same field to be mapped to multiple types.
+These fields cannot be directly used in queries or returned in results,
+unless they're <>.
+
[discrete]
[[esql-_source-availability]]
=== _source availability
diff --git a/docs/reference/esql/esql-multi-index.asciidoc b/docs/reference/esql/esql-multi-index.asciidoc
new file mode 100644
index 0000000000000..25874a132d93d
--- /dev/null
+++ b/docs/reference/esql/esql-multi-index.asciidoc
@@ -0,0 +1,175 @@
+[[esql-multi-index]]
+=== Using {esql} to query multiple indices
+++++
+Using {esql} to query multiple indices
+++++
+
+With {esql}, you can execute a single query across multiple indices, data streams, or aliases.
+To do so, use wildcards and date arithmetic. The following example uses a comma-separated list and a wildcard:
+
+[source,esql]
+----
+FROM employees-00001,other-employees-*
+----
+
+Use the format `:` to <>:
+
+[source,esql]
+----
+FROM cluster_one:employees-00001,cluster_two:other-employees-*
+----
+
+[discrete]
+[[esql-multi-index-invalid-mapping]]
+=== Field type mismatches
+
+When querying multiple indices, data streams, or aliases, you might find that the same field is mapped to multiple different types.
+For example, consider the two indices with the following field mappings:
+
+*index: events_ip*
+```
+{
+ "mappings": {
+ "properties": {
+ "@timestamp": { "type": "date" },
+ "client_ip": { "type": "ip" },
+ "event_duration": { "type": "long" },
+ "message": { "type": "keyword" }
+ }
+ }
+}
+```
+
+*index: events_keyword*
+```
+{
+ "mappings": {
+ "properties": {
+ "@timestamp": { "type": "date" },
+ "client_ip": { "type": "keyword" },
+ "event_duration": { "type": "long" },
+ "message": { "type": "keyword" }
+ }
+ }
+}
+```
+
+When you query each of these individually with a simple query like `FROM events_ip`, the results are provided with type-specific columns:
+
+[source.merge.styled,esql]
+----
+FROM events_ip
+| SORT @timestamp DESC
+----
+[%header.monospaced.styled,format=dsv,separator=|]
+|===
+@timestamp:date | client_ip:ip | event_duration:long | message:keyword
+2023-10-23T13:55:01.543Z | 172.21.3.15 | 1756467 | Connected to 10.1.0.1
+2023-10-23T13:53:55.832Z | 172.21.3.15 | 5033755 | Connection error
+2023-10-23T13:52:55.015Z | 172.21.3.15 | 8268153 | Connection error
+|===
+
+Note how the `client_ip` column is correctly identified as type `ip`, and all values are displayed.
+However, if instead the query sources two conflicting indices with `FROM events_*`, the type of the `client_ip` column cannot be determined
+and is reported as `unsupported` with all values returned as `null`.
+
+[[query-unsupported]]
+[source.merge.styled,esql]
+----
+FROM events_*
+| SORT @timestamp DESC
+----
+[%header.monospaced.styled,format=dsv,separator=|]
+|===
+@timestamp:date | client_ip:unsupported | event_duration:long | message:keyword
+2023-10-23T13:55:01.543Z | null | 1756467 | Connected to 10.1.0.1
+2023-10-23T13:53:55.832Z | null | 5033755 | Connection error
+2023-10-23T13:52:55.015Z | null | 8268153 | Connection error
+2023-10-23T13:51:54.732Z | null | 725448 | Connection error
+2023-10-23T13:33:34.937Z | null | 1232382 | Disconnected
+2023-10-23T12:27:28.948Z | null | 2764889 | Connected to 10.1.0.2
+2023-10-23T12:15:03.360Z | null | 3450233 | Connected to 10.1.0.3
+|===
+
+In addition, if the query refers to this unsupported field directly, the query fails:
+
+[source.merge.styled,esql]
+----
+FROM events_*
+| SORT client_ip DESC
+----
+
+[source,bash]
+----
+Cannot use field [client_ip] due to ambiguities being mapped as
+[2] incompatible types:
+ [ip] in [events_ip],
+ [keyword] in [events_keyword]
+----
+
+[discrete]
+[[esql-multi-index-union-types]]
+=== Union types
+
+experimental::[]
+
+{esql} has a way to handle <>. When the same field is mapped to multiple types in multiple indices,
+the type of the field is understood to be a _union_ of the various types in the index mappings.
+As seen in the preceding examples, this _union type_ cannot be used in the results,
+and cannot be referred to by the query -- except in `KEEP`, `DROP` or when it's passed to a type conversion function that accepts all the types in
+the _union_ and converts the field to a single type. {esql} offers a suite of <> to achieve this.
+
+In the above examples, the query can use a command like `EVAL client_ip = TO_IP(client_ip)` to resolve
+the union of `ip` and `keyword` to just `ip`.
+You can also use the type-conversion syntax `EVAL client_ip = client_ip::IP`.
+Alternatively, the query could use <> to convert all supported types into `KEYWORD`.
+
+For example, the <> that returned `client_ip:unsupported` with `null` values can be improved using the `TO_IP` function or the equivalent `field::ip` syntax.
+These changes also resolve the error message.
+As long as the only reference to the original field is to pass it to a conversion function that resolves the type ambiguity, no error results.
+
+[source.merge.styled,esql]
+----
+FROM events_*
+| EVAL client_ip = TO_IP(client_ip)
+| KEEP @timestamp, client_ip, event_duration, message
+| SORT @timestamp DESC
+----
+[%header.monospaced.styled,format=dsv,separator=|]
+|===
+@timestamp:date | client_ip:ip | event_duration:long | message:keyword
+2023-10-23T13:55:01.543Z | 172.21.3.15 | 1756467 | Connected to 10.1.0.1
+2023-10-23T13:53:55.832Z | 172.21.3.15 | 5033755 | Connection error
+2023-10-23T13:52:55.015Z | 172.21.3.15 | 8268153 | Connection error
+2023-10-23T13:51:54.732Z | 172.21.3.15 | 725448 | Connection error
+2023-10-23T13:33:34.937Z | 172.21.0.5 | 1232382 | Disconnected
+2023-10-23T12:27:28.948Z | 172.21.2.113 | 2764889 | Connected to 10.1.0.2
+2023-10-23T12:15:03.360Z | 172.21.2.162 | 3450233 | Connected to 10.1.0.3
+|===
+
+[discrete]
+[[esql-multi-index-index-metadata]]
+=== Index metadata
+
+It can be helpful to know the particular index from which each row is sourced.
+To get this information, use the <> option on the <> command.
+
+[source.merge.styled,esql]
+----
+FROM events_* METADATA _index
+| EVAL client_ip = TO_IP(client_ip)
+| KEEP _index, @timestamp, client_ip, event_duration, message
+| SORT @timestamp DESC
+----
+[%header.monospaced.styled,format=dsv,separator=|]
+|===
+_index:keyword | @timestamp:date | client_ip:ip | event_duration:long | message:keyword
+events_ip | 2023-10-23T13:55:01.543Z | 172.21.3.15 | 1756467 | Connected to 10.1.0.1
+events_ip | 2023-10-23T13:53:55.832Z | 172.21.3.15 | 5033755 | Connection error
+events_ip | 2023-10-23T13:52:55.015Z | 172.21.3.15 | 8268153 | Connection error
+events_keyword | 2023-10-23T13:51:54.732Z | 172.21.3.15 | 725448 | Connection error
+events_keyword | 2023-10-23T13:33:34.937Z | 172.21.0.5 | 1232382 | Disconnected
+events_keyword | 2023-10-23T12:27:28.948Z | 172.21.2.113 | 2764889 | Connected to 10.1.0.2
+events_keyword | 2023-10-23T12:15:03.360Z | 172.21.2.162 | 3450233 | Connected to 10.1.0.3
+|===
diff --git a/docs/reference/esql/esql-query-api.asciidoc b/docs/reference/esql/esql-query-api.asciidoc
index 2cdd97ceab176..d1db21043a5b5 100644
--- a/docs/reference/esql/esql-query-api.asciidoc
+++ b/docs/reference/esql/esql-query-api.asciidoc
@@ -75,6 +75,13 @@ For syntax, refer to <>.
(Optional, array) Values for parameters in the `query`. For syntax, refer to
<>.
+`profile`::
+(Optional, boolean) If provided and `true` the response will include an extra `profile` object
+with information about how the query was executed. It provides insight into the performance
+of each part of the query. This is for human debugging as the object's format might change at any time.
+Think of this like https://www.postgresql.org/docs/current/sql-explain.html[EXPLAIN ANALYZE] or
+https://en.wikipedia.org/wiki/Query_plan[EXPLAIN PLAN].
+
`query`::
(Required, string) {esql} query to run. For syntax, refer to <>.
@@ -97,6 +104,13 @@ Column `name` and `type` for each column returned in `values`. Each object is a
Column `name` and `type` for each queried column. Each object is a single column. This is only
returned if `drop_null_columns` is sent with the request.
-`rows`::
+`values`::
(array of arrays)
Values for the search results.
+
+`profile`::
+(object)
+Profile describing the execution of the query. Only returned if `profile` was sent in the body.
+The object itself is for human debugging and can change at any time. Think of this like
+https://www.postgresql.org/docs/current/sql-explain.html[EXPLAIN ANALYZE] or
+https://en.wikipedia.org/wiki/Query_plan[EXPLAIN PLAN].
diff --git a/docs/reference/esql/esql-rest.asciidoc b/docs/reference/esql/esql-rest.asciidoc
index 5b90e96d7a734..b2493dc32a211 100644
--- a/docs/reference/esql/esql-rest.asciidoc
+++ b/docs/reference/esql/esql-rest.asciidoc
@@ -233,6 +233,7 @@ POST /_query
}
----
// TEST[setup:library]
+// TEST[skip:This can output a warning, and asciidoc doesn't support allowed_warnings]
[discrete]
[[esql-rest-params]]
@@ -278,6 +279,47 @@ POST /_query
----
// TEST[setup:library]
+The parameters can be named parameters or positional parameters.
+
+Named parameters use question mark placeholders (`?`) followed by a string.
+
+[source,console]
+----
+POST /_query
+{
+ "query": """
+ FROM library
+ | EVAL year = DATE_EXTRACT("year", release_date)
+ | WHERE page_count > ?page_count AND author == ?author
+ | STATS count = COUNT(*) by year
+ | WHERE count > ?count
+ | LIMIT 5
+ """,
+ "params": [{"page_count" : 300}, {"author" : "Frank Herbert"}, {"count" : 0}]
+}
+----
+// TEST[setup:library]
+
+Positional parameters use question mark placeholders (`?`) followed by an
+integer.
+
+[source,console]
+----
+POST /_query
+{
+ "query": """
+ FROM library
+ | EVAL year = DATE_EXTRACT("year", release_date)
+ | WHERE page_count > ?1 AND author == ?2
+ | STATS count = COUNT(*) by year
+ | WHERE count > ?3
+ | LIMIT 5
+ """,
+ "params": [300, "Frank Herbert", 0]
+}
+----
+// TEST[setup:library]
+
[discrete]
[[esql-rest-async-query]]
==== Running an async {esql} query
diff --git a/docs/reference/esql/esql-using.asciidoc b/docs/reference/esql/esql-using.asciidoc
index 3e045163069ec..d2e18bf1b91a3 100644
--- a/docs/reference/esql/esql-using.asciidoc
+++ b/docs/reference/esql/esql-using.asciidoc
@@ -12,6 +12,9 @@ and set up alerts.
Using {esql} in {elastic-sec} to investigate events in Timeline, create
detection rules, and build {esql} queries using Elastic AI Assistant.
+<>::
+Using {esql} to query multiple indexes and resolve field type mismatches.
+
<>::
Using {esql} to query across multiple clusters.
@@ -21,5 +24,6 @@ Using the <> to list and cancel {esql} queries.
include::esql-rest.asciidoc[]
include::esql-kibana.asciidoc[]
include::esql-security-solution.asciidoc[]
+include::esql-multi-index.asciidoc[]
include::esql-across-clusters.asciidoc[]
include::task-management.asciidoc[]
diff --git a/docs/reference/esql/functions/description/locate.asciidoc b/docs/reference/esql/functions/description/locate.asciidoc
index 60a6d435e37b6..b3f9d2a1ad78e 100644
--- a/docs/reference/esql/functions/description/locate.asciidoc
+++ b/docs/reference/esql/functions/description/locate.asciidoc
@@ -2,4 +2,4 @@
*Description*
-Returns an integer that indicates the position of a keyword substring within another string
+Returns an integer that indicates the position of a keyword substring within another string. Returns `0` if the substring cannot be found. Note that string positions start from `1`.
diff --git a/docs/reference/esql/functions/description/mv_first.asciidoc b/docs/reference/esql/functions/description/mv_first.asciidoc
index 99223e2c02d9f..13c433ce209d0 100644
--- a/docs/reference/esql/functions/description/mv_first.asciidoc
+++ b/docs/reference/esql/functions/description/mv_first.asciidoc
@@ -2,4 +2,10 @@
*Description*
-Converts a multivalued expression into a single valued column containing the first value. This is most useful when reading from a function that emits multivalued columns in a known order like <>. The order that <> are read from underlying storage is not guaranteed. It is *frequently* ascending, but don't rely on that. If you need the minimum value use <> instead of `MV_FIRST`. `MV_MIN` has optimizations for sorted values so there isn't a performance benefit to `MV_FIRST`.
+Converts a multivalued expression into a single valued column containing the first value. This is most useful when reading from a function that emits multivalued columns in a known order like <>.
+
+The order that <> are read from
+underlying storage is not guaranteed. It is *frequently* ascending, but don't
+rely on that. If you need the minimum value use <> instead of
+`MV_FIRST`. `MV_MIN` has optimizations for sorted values so there isn't a
+performance benefit to `MV_FIRST`.
diff --git a/docs/reference/esql/functions/description/mv_last.asciidoc b/docs/reference/esql/functions/description/mv_last.asciidoc
index 4b4b4336588d1..beba7b5a402c9 100644
--- a/docs/reference/esql/functions/description/mv_last.asciidoc
+++ b/docs/reference/esql/functions/description/mv_last.asciidoc
@@ -2,4 +2,10 @@
*Description*
-Converts a multivalue expression into a single valued column containing the last value. This is most useful when reading from a function that emits multivalued columns in a known order like <>. The order that <> are read from underlying storage is not guaranteed. It is *frequently* ascending, but don't rely on that. If you need the maximum value use <> instead of `MV_LAST`. `MV_MAX` has optimizations for sorted values so there isn't a performance benefit to `MV_LAST`.
+Converts a multivalue expression into a single valued column containing the last value. This is most useful when reading from a function that emits multivalued columns in a known order like <>.
+
+The order that <> are read from
+underlying storage is not guaranteed. It is *frequently* ascending, but don't
+rely on that. If you need the maximum value use <> instead of
+`MV_LAST`. `MV_MAX` has optimizations for sorted values so there isn't a
+performance benefit to `MV_LAST`.
diff --git a/docs/reference/esql/functions/description/mv_slice.asciidoc b/docs/reference/esql/functions/description/mv_slice.asciidoc
index 24d3183b6f40e..98438ae097fe7 100644
--- a/docs/reference/esql/functions/description/mv_slice.asciidoc
+++ b/docs/reference/esql/functions/description/mv_slice.asciidoc
@@ -2,4 +2,8 @@
*Description*
-Returns a subset of the multivalued field using the start and end index values.
+Returns a subset of the multivalued field using the start and end index values. This is most useful when reading from a function that emits multivalued columns in a known order like <> or <>.
+
+The order that <> are read from
+underlying storage is not guaranteed. It is *frequently* ascending, but don't
+rely on that.
diff --git a/docs/reference/esql/functions/kibana/definition/bucket.json b/docs/reference/esql/functions/kibana/definition/bucket.json
index 7141ca4c27443..ae7305bcca60e 100644
--- a/docs/reference/esql/functions/kibana/definition/bucket.json
+++ b/docs/reference/esql/functions/kibana/definition/bucket.json
@@ -8,7 +8,7 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Numeric or date expression from which to derive buckets."
},
@@ -20,13 +20,13 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Numeric or date expression from which to derive buckets."
},
@@ -38,25 +38,25 @@
},
{
"name" : "from",
- "type" : "datetime",
+ "type" : "date",
"optional" : true,
"description" : "Start of the range. Can be a number or a date expressed as a string."
},
{
"name" : "to",
- "type" : "datetime",
+ "type" : "date",
"optional" : true,
"description" : "End of the range. Can be a number or a date expressed as a string."
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Numeric or date expression from which to derive buckets."
},
@@ -68,7 +68,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/case.json b/docs/reference/esql/functions/kibana/definition/case.json
index 5959eed62d37b..27705cd3897f9 100644
--- a/docs/reference/esql/functions/kibana/definition/case.json
+++ b/docs/reference/esql/functions/kibana/definition/case.json
@@ -50,13 +50,13 @@
},
{
"name" : "trueValue",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "The value that's returned when the corresponding condition is the first to evaluate to `true`. The default value is returned when no condition matches."
}
],
"variadic" : true,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/coalesce.json b/docs/reference/esql/functions/kibana/definition/coalesce.json
index f00f471e63ecc..2459a4d51bb2d 100644
--- a/docs/reference/esql/functions/kibana/definition/coalesce.json
+++ b/docs/reference/esql/functions/kibana/definition/coalesce.json
@@ -74,19 +74,19 @@
"params" : [
{
"name" : "first",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Expression to evaluate."
},
{
"name" : "rest",
- "type" : "datetime",
+ "type" : "date",
"optional" : true,
"description" : "Other expression to evaluate."
}
],
"variadic" : true,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/date_diff.json b/docs/reference/esql/functions/kibana/definition/date_diff.json
index 7995d3c6d32b6..d6589f041075d 100644
--- a/docs/reference/esql/functions/kibana/definition/date_diff.json
+++ b/docs/reference/esql/functions/kibana/definition/date_diff.json
@@ -14,13 +14,13 @@
},
{
"name" : "startTimestamp",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "A string representing a start timestamp"
},
{
"name" : "endTimestamp",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "A string representing an end timestamp"
}
@@ -38,13 +38,13 @@
},
{
"name" : "startTimestamp",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "A string representing a start timestamp"
},
{
"name" : "endTimestamp",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "A string representing an end timestamp"
}
diff --git a/docs/reference/esql/functions/kibana/definition/date_extract.json b/docs/reference/esql/functions/kibana/definition/date_extract.json
index 75cedcc191b50..557f0e0a47e54 100644
--- a/docs/reference/esql/functions/kibana/definition/date_extract.json
+++ b/docs/reference/esql/functions/kibana/definition/date_extract.json
@@ -14,7 +14,7 @@
},
{
"name" : "date",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Date expression. If `null`, the function returns `null`."
}
@@ -32,7 +32,7 @@
},
{
"name" : "date",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Date expression. If `null`, the function returns `null`."
}
diff --git a/docs/reference/esql/functions/kibana/definition/date_format.json b/docs/reference/esql/functions/kibana/definition/date_format.json
index 5e8587c046d70..7bd01d7f4ef31 100644
--- a/docs/reference/esql/functions/kibana/definition/date_format.json
+++ b/docs/reference/esql/functions/kibana/definition/date_format.json
@@ -14,7 +14,7 @@
},
{
"name" : "date",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Date expression. If `null`, the function returns `null`."
}
@@ -32,7 +32,7 @@
},
{
"name" : "date",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Date expression. If `null`, the function returns `null`."
}
diff --git a/docs/reference/esql/functions/kibana/definition/date_parse.json b/docs/reference/esql/functions/kibana/definition/date_parse.json
index 890179143bef8..9400340750c2a 100644
--- a/docs/reference/esql/functions/kibana/definition/date_parse.json
+++ b/docs/reference/esql/functions/kibana/definition/date_parse.json
@@ -20,7 +20,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
@@ -38,7 +38,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
@@ -56,7 +56,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
@@ -74,7 +74,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
}
],
"examples" : [
diff --git a/docs/reference/esql/functions/kibana/definition/date_trunc.json b/docs/reference/esql/functions/kibana/definition/date_trunc.json
index 3d8658c496529..bd3f362d1670b 100644
--- a/docs/reference/esql/functions/kibana/definition/date_trunc.json
+++ b/docs/reference/esql/functions/kibana/definition/date_trunc.json
@@ -14,13 +14,13 @@
},
{
"name" : "date",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Date expression"
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
@@ -32,13 +32,13 @@
},
{
"name" : "date",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Date expression"
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
}
],
"examples" : [
diff --git a/docs/reference/esql/functions/kibana/definition/greatest.json b/docs/reference/esql/functions/kibana/definition/greatest.json
index 15c9f58d32d3e..92543b0bbbabb 100644
--- a/docs/reference/esql/functions/kibana/definition/greatest.json
+++ b/docs/reference/esql/functions/kibana/definition/greatest.json
@@ -35,6 +35,24 @@
"variadic" : true,
"returnType" : "boolean"
},
+ {
+ "params" : [
+ {
+ "name" : "first",
+ "type" : "date",
+ "optional" : false,
+ "description" : "First of the columns to evaluate."
+ },
+ {
+ "name" : "rest",
+ "type" : "date",
+ "optional" : true,
+ "description" : "The rest of the columns to evaluate."
+ }
+ ],
+ "variadic" : true,
+ "returnType" : "date"
+ },
{
"params" : [
{
diff --git a/docs/reference/esql/functions/kibana/definition/least.json b/docs/reference/esql/functions/kibana/definition/least.json
index 0b922ad6ad3c2..a993b1df718ec 100644
--- a/docs/reference/esql/functions/kibana/definition/least.json
+++ b/docs/reference/esql/functions/kibana/definition/least.json
@@ -34,6 +34,24 @@
"variadic" : true,
"returnType" : "boolean"
},
+ {
+ "params" : [
+ {
+ "name" : "first",
+ "type" : "date",
+ "optional" : false,
+ "description" : "First of the columns to evaluate."
+ },
+ {
+ "name" : "rest",
+ "type" : "date",
+ "optional" : true,
+ "description" : "The rest of the columns to evaluate."
+ }
+ ],
+ "variadic" : true,
+ "returnType" : "date"
+ },
{
"params" : [
{
diff --git a/docs/reference/esql/functions/kibana/definition/locate.json b/docs/reference/esql/functions/kibana/definition/locate.json
index 13b7512e17def..a9ddc8c52368a 100644
--- a/docs/reference/esql/functions/kibana/definition/locate.json
+++ b/docs/reference/esql/functions/kibana/definition/locate.json
@@ -2,7 +2,7 @@
"comment" : "This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.",
"type" : "eval",
"name" : "locate",
- "description" : "Returns an integer that indicates the position of a keyword substring within another string",
+ "description" : "Returns an integer that indicates the position of a keyword substring within another string.\nReturns `0` if the substring cannot be found.\nNote that string positions start from `1`.",
"signatures" : [
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/mv_append.json b/docs/reference/esql/functions/kibana/definition/mv_append.json
index 8ee4e7297cc3a..3365226141f8f 100644
--- a/docs/reference/esql/functions/kibana/definition/mv_append.json
+++ b/docs/reference/esql/functions/kibana/definition/mv_append.json
@@ -62,19 +62,19 @@
"params" : [
{
"name" : "field1",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : ""
},
{
"name" : "field2",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : ""
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/mv_count.json b/docs/reference/esql/functions/kibana/definition/mv_count.json
index d414e5b957495..f125327314f4e 100644
--- a/docs/reference/esql/functions/kibana/definition/mv_count.json
+++ b/docs/reference/esql/functions/kibana/definition/mv_count.json
@@ -44,7 +44,7 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Multivalue expression."
}
diff --git a/docs/reference/esql/functions/kibana/definition/mv_dedupe.json b/docs/reference/esql/functions/kibana/definition/mv_dedupe.json
index 7ab287bc94d34..7d66e3dcc0b9b 100644
--- a/docs/reference/esql/functions/kibana/definition/mv_dedupe.json
+++ b/docs/reference/esql/functions/kibana/definition/mv_dedupe.json
@@ -45,13 +45,13 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Multivalue expression."
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/mv_first.json b/docs/reference/esql/functions/kibana/definition/mv_first.json
index e3141e800e4ad..7edd2e4c065b6 100644
--- a/docs/reference/esql/functions/kibana/definition/mv_first.json
+++ b/docs/reference/esql/functions/kibana/definition/mv_first.json
@@ -2,7 +2,7 @@
"comment" : "This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.",
"type" : "eval",
"name" : "mv_first",
- "description" : "Converts a multivalued expression into a single valued column containing the\nfirst value. This is most useful when reading from a function that emits\nmultivalued columns in a known order like <>.\n\nThe order that <> are read from\nunderlying storage is not guaranteed. It is *frequently* ascending, but don't\nrely on that. If you need the minimum value use <> instead of\n`MV_FIRST`. `MV_MIN` has optimizations for sorted values so there isn't a\nperformance benefit to `MV_FIRST`.",
+ "description" : "Converts a multivalued expression into a single valued column containing the\nfirst value. This is most useful when reading from a function that emits\nmultivalued columns in a known order like <>.",
"signatures" : [
{
"params" : [
@@ -44,13 +44,13 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Multivalue expression."
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/mv_last.json b/docs/reference/esql/functions/kibana/definition/mv_last.json
index e55d66dbf8b93..4161d39e6f80f 100644
--- a/docs/reference/esql/functions/kibana/definition/mv_last.json
+++ b/docs/reference/esql/functions/kibana/definition/mv_last.json
@@ -2,7 +2,7 @@
"comment" : "This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.",
"type" : "eval",
"name" : "mv_last",
- "description" : "Converts a multivalue expression into a single valued column containing the last\nvalue. This is most useful when reading from a function that emits multivalued\ncolumns in a known order like <>.\n\nThe order that <> are read from\nunderlying storage is not guaranteed. It is *frequently* ascending, but don't\nrely on that. If you need the maximum value use <> instead of\n`MV_LAST`. `MV_MAX` has optimizations for sorted values so there isn't a\nperformance benefit to `MV_LAST`.",
+ "description" : "Converts a multivalue expression into a single valued column containing the last\nvalue. This is most useful when reading from a function that emits multivalued\ncolumns in a known order like <>.",
"signatures" : [
{
"params" : [
@@ -44,13 +44,13 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Multivalue expression."
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/mv_max.json b/docs/reference/esql/functions/kibana/definition/mv_max.json
index 0783f6d6d5cbc..eb25369f78f77 100644
--- a/docs/reference/esql/functions/kibana/definition/mv_max.json
+++ b/docs/reference/esql/functions/kibana/definition/mv_max.json
@@ -20,13 +20,13 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Multivalue expression."
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/mv_min.json b/docs/reference/esql/functions/kibana/definition/mv_min.json
index cc23df386356e..87ad94338492e 100644
--- a/docs/reference/esql/functions/kibana/definition/mv_min.json
+++ b/docs/reference/esql/functions/kibana/definition/mv_min.json
@@ -20,13 +20,13 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Multivalue expression."
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/mv_slice.json b/docs/reference/esql/functions/kibana/definition/mv_slice.json
index 30d0e1179dc89..3a62cfb070b68 100644
--- a/docs/reference/esql/functions/kibana/definition/mv_slice.json
+++ b/docs/reference/esql/functions/kibana/definition/mv_slice.json
@@ -2,7 +2,7 @@
"comment" : "This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.",
"type" : "eval",
"name" : "mv_slice",
- "description" : "Returns a subset of the multivalued field using the start and end index values.",
+ "description" : "Returns a subset of the multivalued field using the start and end index values.\nThis is most useful when reading from a function that emits multivalued columns\nin a known order like <> or <>.",
"signatures" : [
{
"params" : [
@@ -80,7 +80,7 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Multivalue expression. If `null`, the function returns `null`."
},
@@ -98,7 +98,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/mv_sort.json b/docs/reference/esql/functions/kibana/definition/mv_sort.json
index 28b4c9e8d6fea..d2bbd2c0fdbf4 100644
--- a/docs/reference/esql/functions/kibana/definition/mv_sort.json
+++ b/docs/reference/esql/functions/kibana/definition/mv_sort.json
@@ -26,7 +26,7 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Multivalue expression. If `null`, the function returns `null`."
},
@@ -38,7 +38,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/definition/now.json b/docs/reference/esql/functions/kibana/definition/now.json
index 9cdb4945afa2e..1a2fc3a1dc42a 100644
--- a/docs/reference/esql/functions/kibana/definition/now.json
+++ b/docs/reference/esql/functions/kibana/definition/now.json
@@ -6,7 +6,7 @@
"signatures" : [
{
"params" : [ ],
- "returnType" : "datetime"
+ "returnType" : "date"
}
],
"examples" : [
diff --git a/docs/reference/esql/functions/kibana/definition/to_datetime.json b/docs/reference/esql/functions/kibana/definition/to_datetime.json
index 10fcf8b22e8b0..6891a92f3788b 100644
--- a/docs/reference/esql/functions/kibana/definition/to_datetime.json
+++ b/docs/reference/esql/functions/kibana/definition/to_datetime.json
@@ -8,13 +8,13 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Input value. The input can be a single- or multi-valued column or an expression."
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
@@ -26,7 +26,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
@@ -38,7 +38,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
@@ -50,7 +50,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
@@ -62,7 +62,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
@@ -74,7 +74,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
@@ -86,7 +86,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
}
],
"examples" : [
diff --git a/docs/reference/esql/functions/kibana/definition/to_double.json b/docs/reference/esql/functions/kibana/definition/to_double.json
index f4e414068db61..ae7e4832bfb3c 100644
--- a/docs/reference/esql/functions/kibana/definition/to_double.json
+++ b/docs/reference/esql/functions/kibana/definition/to_double.json
@@ -56,7 +56,7 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Input value. The input can be a single- or multi-valued column or an expression."
}
diff --git a/docs/reference/esql/functions/kibana/definition/to_integer.json b/docs/reference/esql/functions/kibana/definition/to_integer.json
index 2776d8b29c412..5150d12936711 100644
--- a/docs/reference/esql/functions/kibana/definition/to_integer.json
+++ b/docs/reference/esql/functions/kibana/definition/to_integer.json
@@ -32,7 +32,7 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Input value. The input can be a single- or multi-valued column or an expression."
}
diff --git a/docs/reference/esql/functions/kibana/definition/to_long.json b/docs/reference/esql/functions/kibana/definition/to_long.json
index e3218eba9642a..5fd4bce34e7e0 100644
--- a/docs/reference/esql/functions/kibana/definition/to_long.json
+++ b/docs/reference/esql/functions/kibana/definition/to_long.json
@@ -44,7 +44,7 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Input value. The input can be a single- or multi-valued column or an expression."
}
diff --git a/docs/reference/esql/functions/kibana/definition/to_string.json b/docs/reference/esql/functions/kibana/definition/to_string.json
index ef03cc06ea636..ea94171834908 100644
--- a/docs/reference/esql/functions/kibana/definition/to_string.json
+++ b/docs/reference/esql/functions/kibana/definition/to_string.json
@@ -44,7 +44,7 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Input value. The input can be a single- or multi-valued column or an expression."
}
diff --git a/docs/reference/esql/functions/kibana/definition/to_unsigned_long.json b/docs/reference/esql/functions/kibana/definition/to_unsigned_long.json
index d9cba641573fb..5521241224d61 100644
--- a/docs/reference/esql/functions/kibana/definition/to_unsigned_long.json
+++ b/docs/reference/esql/functions/kibana/definition/to_unsigned_long.json
@@ -20,7 +20,7 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "Input value. The input can be a single- or multi-valued column or an expression."
}
diff --git a/docs/reference/esql/functions/kibana/definition/top.json b/docs/reference/esql/functions/kibana/definition/top.json
index 7ad073d6e7564..8ec14e4659850 100644
--- a/docs/reference/esql/functions/kibana/definition/top.json
+++ b/docs/reference/esql/functions/kibana/definition/top.json
@@ -8,7 +8,7 @@
"params" : [
{
"name" : "field",
- "type" : "datetime",
+ "type" : "date",
"optional" : false,
"description" : "The field to collect the top values for."
},
@@ -26,7 +26,7 @@
}
],
"variadic" : false,
- "returnType" : "datetime"
+ "returnType" : "date"
},
{
"params" : [
diff --git a/docs/reference/esql/functions/kibana/docs/locate.md b/docs/reference/esql/functions/kibana/docs/locate.md
index 7fffbfd548f20..412832e9b1587 100644
--- a/docs/reference/esql/functions/kibana/docs/locate.md
+++ b/docs/reference/esql/functions/kibana/docs/locate.md
@@ -3,7 +3,9 @@ This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../READ
-->
### LOCATE
-Returns an integer that indicates the position of a keyword substring within another string
+Returns an integer that indicates the position of a keyword substring within another string.
+Returns `0` if the substring cannot be found.
+Note that string positions start from `1`.
```
row a = "hello"
diff --git a/docs/reference/esql/functions/kibana/docs/mv_avg.md b/docs/reference/esql/functions/kibana/docs/mv_avg.md
index c3d7e5423f724..c5163f36129bf 100644
--- a/docs/reference/esql/functions/kibana/docs/mv_avg.md
+++ b/docs/reference/esql/functions/kibana/docs/mv_avg.md
@@ -3,7 +3,7 @@ This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../READ
-->
### MV_AVG
-Converts a multivalued field into a single valued field containing the average of all of the values.
+Converts a multivalued field into a single valued field containing the average of all the values.
```
ROW a=[3, 5, 1, 6]
diff --git a/docs/reference/esql/functions/kibana/docs/mv_first.md b/docs/reference/esql/functions/kibana/docs/mv_first.md
index 4faea6edd9162..c50ed7d764020 100644
--- a/docs/reference/esql/functions/kibana/docs/mv_first.md
+++ b/docs/reference/esql/functions/kibana/docs/mv_first.md
@@ -7,12 +7,6 @@ Converts a multivalued expression into a single valued column containing the
first value. This is most useful when reading from a function that emits
multivalued columns in a known order like <>.
-The order that <> are read from
-underlying storage is not guaranteed. It is *frequently* ascending, but don't
-rely on that. If you need the minimum value use <> instead of
-`MV_FIRST`. `MV_MIN` has optimizations for sorted values so there isn't a
-performance benefit to `MV_FIRST`.
-
```
ROW a="foo;bar;baz"
| EVAL first_a = MV_FIRST(SPLIT(a, ";"))
diff --git a/docs/reference/esql/functions/kibana/docs/mv_last.md b/docs/reference/esql/functions/kibana/docs/mv_last.md
index a8c3bf25eb51b..eeefd929c1359 100644
--- a/docs/reference/esql/functions/kibana/docs/mv_last.md
+++ b/docs/reference/esql/functions/kibana/docs/mv_last.md
@@ -7,12 +7,6 @@ Converts a multivalue expression into a single valued column containing the last
value. This is most useful when reading from a function that emits multivalued
columns in a known order like <>.
-The order that <> are read from
-underlying storage is not guaranteed. It is *frequently* ascending, but don't
-rely on that. If you need the maximum value use <> instead of
-`MV_LAST`. `MV_MAX` has optimizations for sorted values so there isn't a
-performance benefit to `MV_LAST`.
-
```
ROW a="foo;bar;baz"
| EVAL last_a = MV_LAST(SPLIT(a, ";"))
diff --git a/docs/reference/esql/functions/kibana/docs/mv_slice.md b/docs/reference/esql/functions/kibana/docs/mv_slice.md
index 3daf0de930a7f..bba7a219960ef 100644
--- a/docs/reference/esql/functions/kibana/docs/mv_slice.md
+++ b/docs/reference/esql/functions/kibana/docs/mv_slice.md
@@ -4,6 +4,8 @@ This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../READ
### MV_SLICE
Returns a subset of the multivalued field using the start and end index values.
+This is most useful when reading from a function that emits multivalued columns
+in a known order like <> or <>.
```
row a = [1, 2, 2, 3]
diff --git a/docs/reference/esql/functions/kibana/docs/mv_sum.md b/docs/reference/esql/functions/kibana/docs/mv_sum.md
index 16285d3c7229b..987017b34b743 100644
--- a/docs/reference/esql/functions/kibana/docs/mv_sum.md
+++ b/docs/reference/esql/functions/kibana/docs/mv_sum.md
@@ -3,7 +3,7 @@ This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../READ
-->
### MV_SUM
-Converts a multivalued field into a single valued field containing the sum of all of the values.
+Converts a multivalued field into a single valued field containing the sum of all the values.
```
ROW a=[3, 5, 6]
diff --git a/docs/reference/esql/functions/types/add.asciidoc b/docs/reference/esql/functions/types/add.asciidoc
index a0215a803d4e3..54d1aec463c1a 100644
--- a/docs/reference/esql/functions/types/add.asciidoc
+++ b/docs/reference/esql/functions/types/add.asciidoc
@@ -5,10 +5,10 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
lhs | rhs | result
+date | date_period | date
+date | time_duration | date
+date_period | date | date
date_period | date_period | date_period
-date_period | datetime | datetime
-datetime | date_period | datetime
-datetime | time_duration | datetime
double | double | double
double | integer | double
double | long | double
@@ -18,7 +18,7 @@ integer | long | long
long | double | double
long | integer | long
long | long | long
-time_duration | datetime | datetime
+time_duration | date | date
time_duration | time_duration | time_duration
unsigned_long | unsigned_long | unsigned_long
|===
diff --git a/docs/reference/esql/functions/types/bucket.asciidoc b/docs/reference/esql/functions/types/bucket.asciidoc
index d1ce8e499eb07..a78883252a112 100644
--- a/docs/reference/esql/functions/types/bucket.asciidoc
+++ b/docs/reference/esql/functions/types/bucket.asciidoc
@@ -5,9 +5,9 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
field | buckets | from | to | result
-datetime | date_period | | | datetime
-datetime | integer | datetime | datetime | datetime
-datetime | time_duration | | | datetime
+date | date_period | | | date
+date | integer | date | date | date
+date | time_duration | | | date
double | double | | | double
double | integer | double | double | double
double | integer | double | integer | double
diff --git a/docs/reference/esql/functions/types/case.asciidoc b/docs/reference/esql/functions/types/case.asciidoc
index 85e4193b5bf2f..f6c8cfe9361d1 100644
--- a/docs/reference/esql/functions/types/case.asciidoc
+++ b/docs/reference/esql/functions/types/case.asciidoc
@@ -7,7 +7,7 @@
condition | trueValue | result
boolean | boolean | boolean
boolean | cartesian_point | cartesian_point
-boolean | datetime | datetime
+boolean | date | date
boolean | double | double
boolean | geo_point | geo_point
boolean | integer | integer
diff --git a/docs/reference/esql/functions/types/coalesce.asciidoc b/docs/reference/esql/functions/types/coalesce.asciidoc
index 841d836f6837e..368a12db0dca4 100644
--- a/docs/reference/esql/functions/types/coalesce.asciidoc
+++ b/docs/reference/esql/functions/types/coalesce.asciidoc
@@ -9,7 +9,7 @@ boolean | boolean | boolean
boolean | | boolean
cartesian_point | cartesian_point | cartesian_point
cartesian_shape | cartesian_shape | cartesian_shape
-datetime | datetime | datetime
+date | date | date
geo_point | geo_point | geo_point
geo_shape | geo_shape | geo_shape
integer | integer | integer
diff --git a/docs/reference/esql/functions/types/date_diff.asciidoc b/docs/reference/esql/functions/types/date_diff.asciidoc
index 98adcef51e75c..b0a4818f412ac 100644
--- a/docs/reference/esql/functions/types/date_diff.asciidoc
+++ b/docs/reference/esql/functions/types/date_diff.asciidoc
@@ -5,6 +5,6 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
unit | startTimestamp | endTimestamp | result
-keyword | datetime | datetime | integer
-text | datetime | datetime | integer
+keyword | date | date | integer
+text | date | date | integer
|===
diff --git a/docs/reference/esql/functions/types/date_extract.asciidoc b/docs/reference/esql/functions/types/date_extract.asciidoc
index 43702ef0671a7..ec9bf70c221cc 100644
--- a/docs/reference/esql/functions/types/date_extract.asciidoc
+++ b/docs/reference/esql/functions/types/date_extract.asciidoc
@@ -5,6 +5,6 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
datePart | date | result
-keyword | datetime | long
-text | datetime | long
+keyword | date | long
+text | date | long
|===
diff --git a/docs/reference/esql/functions/types/date_format.asciidoc b/docs/reference/esql/functions/types/date_format.asciidoc
index a76f38653b9b8..b2e97dfa8835a 100644
--- a/docs/reference/esql/functions/types/date_format.asciidoc
+++ b/docs/reference/esql/functions/types/date_format.asciidoc
@@ -5,6 +5,6 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
dateFormat | date | result
-keyword | datetime | keyword
-text | datetime | keyword
+keyword | date | keyword
+text | date | keyword
|===
diff --git a/docs/reference/esql/functions/types/date_parse.asciidoc b/docs/reference/esql/functions/types/date_parse.asciidoc
index 314d02eb06271..f3eab18309dd8 100644
--- a/docs/reference/esql/functions/types/date_parse.asciidoc
+++ b/docs/reference/esql/functions/types/date_parse.asciidoc
@@ -5,8 +5,8 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
datePattern | dateString | result
-keyword | keyword | datetime
-keyword | text | datetime
-text | keyword | datetime
-text | text | datetime
+keyword | keyword | date
+keyword | text | date
+text | keyword | date
+text | text | date
|===
diff --git a/docs/reference/esql/functions/types/date_trunc.asciidoc b/docs/reference/esql/functions/types/date_trunc.asciidoc
index 8df45cfef54a8..aa7dee99c6c44 100644
--- a/docs/reference/esql/functions/types/date_trunc.asciidoc
+++ b/docs/reference/esql/functions/types/date_trunc.asciidoc
@@ -5,6 +5,6 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
interval | date | result
-date_period | datetime | datetime
-time_duration | datetime | datetime
+date_period | date | date
+time_duration | date | date
|===
diff --git a/docs/reference/esql/functions/types/equals.asciidoc b/docs/reference/esql/functions/types/equals.asciidoc
index 497c9319fedb3..ad0e46ef4b8da 100644
--- a/docs/reference/esql/functions/types/equals.asciidoc
+++ b/docs/reference/esql/functions/types/equals.asciidoc
@@ -8,7 +8,7 @@ lhs | rhs | result
boolean | boolean | boolean
cartesian_point | cartesian_point | boolean
cartesian_shape | cartesian_shape | boolean
-datetime | datetime | boolean
+date | date | boolean
double | double | boolean
double | integer | boolean
double | long | boolean
diff --git a/docs/reference/esql/functions/types/greater_than.asciidoc b/docs/reference/esql/functions/types/greater_than.asciidoc
index 771daf1a953b2..c506328126a94 100644
--- a/docs/reference/esql/functions/types/greater_than.asciidoc
+++ b/docs/reference/esql/functions/types/greater_than.asciidoc
@@ -5,7 +5,7 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
lhs | rhs | result
-datetime | datetime | boolean
+date | date | boolean
double | double | boolean
double | integer | boolean
double | long | boolean
diff --git a/docs/reference/esql/functions/types/greater_than_or_equal.asciidoc b/docs/reference/esql/functions/types/greater_than_or_equal.asciidoc
index 771daf1a953b2..c506328126a94 100644
--- a/docs/reference/esql/functions/types/greater_than_or_equal.asciidoc
+++ b/docs/reference/esql/functions/types/greater_than_or_equal.asciidoc
@@ -5,7 +5,7 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
lhs | rhs | result
-datetime | datetime | boolean
+date | date | boolean
double | double | boolean
double | integer | boolean
double | long | boolean
diff --git a/docs/reference/esql/functions/types/greatest.asciidoc b/docs/reference/esql/functions/types/greatest.asciidoc
index 537be55cd17ef..1454bbb6f81c1 100644
--- a/docs/reference/esql/functions/types/greatest.asciidoc
+++ b/docs/reference/esql/functions/types/greatest.asciidoc
@@ -7,6 +7,7 @@
first | rest | result
boolean | boolean | boolean
boolean | | boolean
+date | date | date
double | double | double
integer | integer | integer
integer | | integer
diff --git a/docs/reference/esql/functions/types/least.asciidoc b/docs/reference/esql/functions/types/least.asciidoc
index 537be55cd17ef..1454bbb6f81c1 100644
--- a/docs/reference/esql/functions/types/least.asciidoc
+++ b/docs/reference/esql/functions/types/least.asciidoc
@@ -7,6 +7,7 @@
first | rest | result
boolean | boolean | boolean
boolean | | boolean
+date | date | date
double | double | double
integer | integer | integer
integer | | integer
diff --git a/docs/reference/esql/functions/types/less_than.asciidoc b/docs/reference/esql/functions/types/less_than.asciidoc
index 771daf1a953b2..c506328126a94 100644
--- a/docs/reference/esql/functions/types/less_than.asciidoc
+++ b/docs/reference/esql/functions/types/less_than.asciidoc
@@ -5,7 +5,7 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
lhs | rhs | result
-datetime | datetime | boolean
+date | date | boolean
double | double | boolean
double | integer | boolean
double | long | boolean
diff --git a/docs/reference/esql/functions/types/less_than_or_equal.asciidoc b/docs/reference/esql/functions/types/less_than_or_equal.asciidoc
index 771daf1a953b2..c506328126a94 100644
--- a/docs/reference/esql/functions/types/less_than_or_equal.asciidoc
+++ b/docs/reference/esql/functions/types/less_than_or_equal.asciidoc
@@ -5,7 +5,7 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
lhs | rhs | result
-datetime | datetime | boolean
+date | date | boolean
double | double | boolean
double | integer | boolean
double | long | boolean
diff --git a/docs/reference/esql/functions/types/mv_append.asciidoc b/docs/reference/esql/functions/types/mv_append.asciidoc
index 49dcef6dc8860..a1894e429ae82 100644
--- a/docs/reference/esql/functions/types/mv_append.asciidoc
+++ b/docs/reference/esql/functions/types/mv_append.asciidoc
@@ -8,7 +8,7 @@ field1 | field2 | result
boolean | boolean | boolean
cartesian_point | cartesian_point | cartesian_point
cartesian_shape | cartesian_shape | cartesian_shape
-datetime | datetime | datetime
+date | date | date
double | double | double
geo_point | geo_point | geo_point
geo_shape | geo_shape | geo_shape
diff --git a/docs/reference/esql/functions/types/mv_count.asciidoc b/docs/reference/esql/functions/types/mv_count.asciidoc
index 8af6b76591acb..260c531731f04 100644
--- a/docs/reference/esql/functions/types/mv_count.asciidoc
+++ b/docs/reference/esql/functions/types/mv_count.asciidoc
@@ -8,7 +8,7 @@ field | result
boolean | integer
cartesian_point | integer
cartesian_shape | integer
-datetime | integer
+date | integer
double | integer
geo_point | integer
geo_shape | integer
diff --git a/docs/reference/esql/functions/types/mv_dedupe.asciidoc b/docs/reference/esql/functions/types/mv_dedupe.asciidoc
index a6b78f781f17a..68e546451c8cb 100644
--- a/docs/reference/esql/functions/types/mv_dedupe.asciidoc
+++ b/docs/reference/esql/functions/types/mv_dedupe.asciidoc
@@ -8,7 +8,7 @@ field | result
boolean | boolean
cartesian_point | cartesian_point
cartesian_shape | cartesian_shape
-datetime | datetime
+date | date
double | double
geo_point | geo_point
geo_shape | geo_shape
diff --git a/docs/reference/esql/functions/types/mv_first.asciidoc b/docs/reference/esql/functions/types/mv_first.asciidoc
index e077c57971a4a..35633544d99a0 100644
--- a/docs/reference/esql/functions/types/mv_first.asciidoc
+++ b/docs/reference/esql/functions/types/mv_first.asciidoc
@@ -8,7 +8,7 @@ field | result
boolean | boolean
cartesian_point | cartesian_point
cartesian_shape | cartesian_shape
-datetime | datetime
+date | date
double | double
geo_point | geo_point
geo_shape | geo_shape
diff --git a/docs/reference/esql/functions/types/mv_last.asciidoc b/docs/reference/esql/functions/types/mv_last.asciidoc
index e077c57971a4a..35633544d99a0 100644
--- a/docs/reference/esql/functions/types/mv_last.asciidoc
+++ b/docs/reference/esql/functions/types/mv_last.asciidoc
@@ -8,7 +8,7 @@ field | result
boolean | boolean
cartesian_point | cartesian_point
cartesian_shape | cartesian_shape
-datetime | datetime
+date | date
double | double
geo_point | geo_point
geo_shape | geo_shape
diff --git a/docs/reference/esql/functions/types/mv_max.asciidoc b/docs/reference/esql/functions/types/mv_max.asciidoc
index 4e5f0a5e0ae89..8ea36aebbad37 100644
--- a/docs/reference/esql/functions/types/mv_max.asciidoc
+++ b/docs/reference/esql/functions/types/mv_max.asciidoc
@@ -6,7 +6,7 @@
|===
field | result
boolean | boolean
-datetime | datetime
+date | date
double | double
integer | integer
ip | ip
diff --git a/docs/reference/esql/functions/types/mv_min.asciidoc b/docs/reference/esql/functions/types/mv_min.asciidoc
index 4e5f0a5e0ae89..8ea36aebbad37 100644
--- a/docs/reference/esql/functions/types/mv_min.asciidoc
+++ b/docs/reference/esql/functions/types/mv_min.asciidoc
@@ -6,7 +6,7 @@
|===
field | result
boolean | boolean
-datetime | datetime
+date | date
double | double
integer | integer
ip | ip
diff --git a/docs/reference/esql/functions/types/mv_slice.asciidoc b/docs/reference/esql/functions/types/mv_slice.asciidoc
index 568de10f53d32..0a9dc073370c7 100644
--- a/docs/reference/esql/functions/types/mv_slice.asciidoc
+++ b/docs/reference/esql/functions/types/mv_slice.asciidoc
@@ -8,7 +8,7 @@ field | start | end | result
boolean | integer | integer | boolean
cartesian_point | integer | integer | cartesian_point
cartesian_shape | integer | integer | cartesian_shape
-datetime | integer | integer | datetime
+date | integer | integer | date
double | integer | integer | double
geo_point | integer | integer | geo_point
geo_shape | integer | integer | geo_shape
diff --git a/docs/reference/esql/functions/types/mv_sort.asciidoc b/docs/reference/esql/functions/types/mv_sort.asciidoc
index 24925ca8a6587..93965187482ac 100644
--- a/docs/reference/esql/functions/types/mv_sort.asciidoc
+++ b/docs/reference/esql/functions/types/mv_sort.asciidoc
@@ -6,7 +6,7 @@
|===
field | order | result
boolean | keyword | boolean
-datetime | keyword | datetime
+date | keyword | date
double | keyword | double
integer | keyword | integer
ip | keyword | ip
diff --git a/docs/reference/esql/functions/types/not_equals.asciidoc b/docs/reference/esql/functions/types/not_equals.asciidoc
index 497c9319fedb3..ad0e46ef4b8da 100644
--- a/docs/reference/esql/functions/types/not_equals.asciidoc
+++ b/docs/reference/esql/functions/types/not_equals.asciidoc
@@ -8,7 +8,7 @@ lhs | rhs | result
boolean | boolean | boolean
cartesian_point | cartesian_point | boolean
cartesian_shape | cartesian_shape | boolean
-datetime | datetime | boolean
+date | date | boolean
double | double | boolean
double | integer | boolean
double | long | boolean
diff --git a/docs/reference/esql/functions/types/now.asciidoc b/docs/reference/esql/functions/types/now.asciidoc
index 5737d98f2f7db..b474ab1042050 100644
--- a/docs/reference/esql/functions/types/now.asciidoc
+++ b/docs/reference/esql/functions/types/now.asciidoc
@@ -5,5 +5,5 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
result
-datetime
+date
|===
diff --git a/docs/reference/esql/functions/types/sub.asciidoc b/docs/reference/esql/functions/types/sub.asciidoc
index d309f651705f0..c3ded301ebe68 100644
--- a/docs/reference/esql/functions/types/sub.asciidoc
+++ b/docs/reference/esql/functions/types/sub.asciidoc
@@ -5,9 +5,9 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
lhs | rhs | result
+date | date_period | date
+date | time_duration | date
date_period | date_period | date_period
-datetime | date_period | datetime
-datetime | time_duration | datetime
double | double | double
double | integer | double
double | long | double
diff --git a/docs/reference/esql/functions/types/to_datetime.asciidoc b/docs/reference/esql/functions/types/to_datetime.asciidoc
index 52c4cebb661cf..80c986efca794 100644
--- a/docs/reference/esql/functions/types/to_datetime.asciidoc
+++ b/docs/reference/esql/functions/types/to_datetime.asciidoc
@@ -5,11 +5,11 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
field | result
-datetime | datetime
-double | datetime
-integer | datetime
-keyword | datetime
-long | datetime
-text | datetime
-unsigned_long | datetime
+date | date
+double | date
+integer | date
+keyword | date
+long | date
+text | date
+unsigned_long | date
|===
diff --git a/docs/reference/esql/functions/types/to_double.asciidoc b/docs/reference/esql/functions/types/to_double.asciidoc
index cff686c7bc4ca..d5f5833cd7249 100644
--- a/docs/reference/esql/functions/types/to_double.asciidoc
+++ b/docs/reference/esql/functions/types/to_double.asciidoc
@@ -9,7 +9,7 @@ boolean | double
counter_double | double
counter_integer | double
counter_long | double
-datetime | double
+date | double
double | double
integer | double
keyword | double
diff --git a/docs/reference/esql/functions/types/to_integer.asciidoc b/docs/reference/esql/functions/types/to_integer.asciidoc
index 974f3c9c82d88..d67f8f07affd9 100644
--- a/docs/reference/esql/functions/types/to_integer.asciidoc
+++ b/docs/reference/esql/functions/types/to_integer.asciidoc
@@ -7,7 +7,7 @@
field | result
boolean | integer
counter_integer | integer
-datetime | integer
+date | integer
double | integer
integer | integer
keyword | integer
diff --git a/docs/reference/esql/functions/types/to_long.asciidoc b/docs/reference/esql/functions/types/to_long.asciidoc
index b3959c5444e34..a07990cb1cfbf 100644
--- a/docs/reference/esql/functions/types/to_long.asciidoc
+++ b/docs/reference/esql/functions/types/to_long.asciidoc
@@ -8,7 +8,7 @@ field | result
boolean | long
counter_integer | long
counter_long | long
-datetime | long
+date | long
double | long
integer | long
keyword | long
diff --git a/docs/reference/esql/functions/types/to_string.asciidoc b/docs/reference/esql/functions/types/to_string.asciidoc
index f14cfbb39929f..26a5b31a2a589 100644
--- a/docs/reference/esql/functions/types/to_string.asciidoc
+++ b/docs/reference/esql/functions/types/to_string.asciidoc
@@ -8,7 +8,7 @@ field | result
boolean | keyword
cartesian_point | keyword
cartesian_shape | keyword
-datetime | keyword
+date | keyword
double | keyword
geo_point | keyword
geo_shape | keyword
diff --git a/docs/reference/esql/functions/types/to_unsigned_long.asciidoc b/docs/reference/esql/functions/types/to_unsigned_long.asciidoc
index a271e1a19321d..87b21f3948dad 100644
--- a/docs/reference/esql/functions/types/to_unsigned_long.asciidoc
+++ b/docs/reference/esql/functions/types/to_unsigned_long.asciidoc
@@ -6,7 +6,7 @@
|===
field | result
boolean | unsigned_long
-datetime | unsigned_long
+date | unsigned_long
double | unsigned_long
integer | unsigned_long
keyword | unsigned_long
diff --git a/docs/reference/esql/functions/types/top.asciidoc b/docs/reference/esql/functions/types/top.asciidoc
index 1874cd8b12bf3..32b9513f5c6f8 100644
--- a/docs/reference/esql/functions/types/top.asciidoc
+++ b/docs/reference/esql/functions/types/top.asciidoc
@@ -5,7 +5,7 @@
[%header.monospaced.styled,format=dsv,separator=|]
|===
field | limit | order | result
-datetime | integer | keyword | datetime
+date | integer | keyword | date
double | integer | keyword | double
integer | integer | keyword | integer
long | integer | keyword | long
diff --git a/docs/reference/esql/multivalued-fields.asciidoc b/docs/reference/esql/multivalued-fields.asciidoc
index 8ff645bba863e..00f441fcee0ff 100644
--- a/docs/reference/esql/multivalued-fields.asciidoc
+++ b/docs/reference/esql/multivalued-fields.asciidoc
@@ -166,6 +166,35 @@ POST /_query
}
----
+[discrete]
+[[esql-multivalued-nulls]]
+==== `null` in a list
+
+`null` values in a list are not preserved at the storage layer:
+
+[source,console,id=esql-multivalued-fields-multivalued-nulls]
+----
+POST /mv/_doc?refresh
+{ "a": [2, null, 1] }
+
+POST /_query
+{
+ "query": "FROM mv | LIMIT 1"
+}
+----
+
+[source,console-result]
+----
+{
+ "columns": [
+ { "name": "a", "type": "long"},
+ ],
+ "values": [
+ [[1, 2]],
+ ]
+}
+----
+
[discrete]
[[esql-multivalued-fields-functions]]
==== Functions
diff --git a/docs/reference/esql/processing-commands/dissect.asciidoc b/docs/reference/esql/processing-commands/dissect.asciidoc
index c48b72af0de7e..3dca50c8aee5e 100644
--- a/docs/reference/esql/processing-commands/dissect.asciidoc
+++ b/docs/reference/esql/processing-commands/dissect.asciidoc
@@ -17,6 +17,8 @@ multiple values, `DISSECT` will process each value.
`pattern`::
A <>.
+If a field name conflicts with an existing column, the existing column is dropped.
+If a field name is used more than once, only the rightmost duplicate creates a column.
``::
A string used as the separator between appended values, when using the <>.
diff --git a/docs/reference/esql/processing-commands/enrich.asciidoc b/docs/reference/esql/processing-commands/enrich.asciidoc
index 5470d81b2f40b..844cc2c62d1ed 100644
--- a/docs/reference/esql/processing-commands/enrich.asciidoc
+++ b/docs/reference/esql/processing-commands/enrich.asciidoc
@@ -28,11 +28,16 @@ name as the `match_field` defined in the <>.
The enrich fields from the enrich index that are added to the result as new
columns. If a column with the same name as the enrich field already exists, the
existing column will be replaced by the new column. If not specified, each of
-the enrich fields defined in the policy is added
+the enrich fields defined in the policy is added.
+A column with the same name as the enrich field will be dropped unless the
+enrich field is renamed.
`new_nameX`::
Enables you to change the name of the column that's added for each of the enrich
fields. Defaults to the enrich field name.
+If a column has the same name as the new name, it will be discarded.
+If a name (new or original) occurs more than once, only the rightmost duplicate
+creates a new column.
*Description*
diff --git a/docs/reference/esql/processing-commands/eval.asciidoc b/docs/reference/esql/processing-commands/eval.asciidoc
index 9b34fca7ceeff..be69d775b2755 100644
--- a/docs/reference/esql/processing-commands/eval.asciidoc
+++ b/docs/reference/esql/processing-commands/eval.asciidoc
@@ -13,10 +13,12 @@ EVAL [column1 =] value1[, ..., [columnN =] valueN]
`columnX`::
The column name.
+If a column with the same name already exists, the existing column is dropped.
+If a column name is used more than once, only the rightmost duplicate creates a column.
`valueX`::
The value for the column. Can be a literal, an expression, or a
-<>.
+<>. Can use columns defined left of this one.
*Description*
diff --git a/docs/reference/esql/processing-commands/grok.asciidoc b/docs/reference/esql/processing-commands/grok.asciidoc
index d5d58a9eaee12..58493a13359d2 100644
--- a/docs/reference/esql/processing-commands/grok.asciidoc
+++ b/docs/reference/esql/processing-commands/grok.asciidoc
@@ -17,6 +17,9 @@ multiple values, `GROK` will process each value.
`pattern`::
A grok pattern.
+If a field name conflicts with an existing column, the existing column is discarded.
+If a field name is used more than once, a multi-valued column will be created with one value
+per each occurrence of the field name.
*Description*
@@ -64,4 +67,16 @@ include::{esql-specs}/docs.csv-spec[tag=grokWithToDatetime]
|===
include::{esql-specs}/docs.csv-spec[tag=grokWithToDatetime-result]
|===
+
+If a field name is used more than once, `GROK` creates a multi-valued
+column:
+
+[source.merge.styled,esql]
+----
+include::{esql-specs}/docs.csv-spec[tag=grokWithDuplicateFieldNames]
+----
+[%header.monospaced.styled,format=dsv,separator=|]
+|===
+include::{esql-specs}/docs.csv-spec[tag=grokWithDuplicateFieldNames-result]
+|===
// end::examples[]
diff --git a/docs/reference/esql/processing-commands/keep.asciidoc b/docs/reference/esql/processing-commands/keep.asciidoc
index 57f32a68aec4c..a07afa64a756c 100644
--- a/docs/reference/esql/processing-commands/keep.asciidoc
+++ b/docs/reference/esql/processing-commands/keep.asciidoc
@@ -13,6 +13,8 @@ KEEP columns
`columns`::
A comma-separated list of columns to keep. Supports wildcards.
+See below for the behavior in case an existing column matches multiple
+given wildcards or column names.
*Description*
@@ -26,7 +28,7 @@ Fields are added in the order they appear. If one field matches multiple express
2. Partial wildcard expressions (for example: `fieldNam*`)
3. Wildcard only (`*`)
-If a field matches two expressions with the same precedence, the right-most expression wins.
+If a field matches two expressions with the same precedence, the rightmost expression wins.
Refer to the examples for illustrations of these precedence rules.
diff --git a/docs/reference/esql/processing-commands/lookup.asciidoc b/docs/reference/esql/processing-commands/lookup.asciidoc
index 1944d243968a8..142bcb93dc445 100644
--- a/docs/reference/esql/processing-commands/lookup.asciidoc
+++ b/docs/reference/esql/processing-commands/lookup.asciidoc
@@ -15,6 +15,7 @@ LOOKUP table ON match_field1[, match_field2, ...]
`table`::
The name of the `table` provided in the request to match.
+If the table's column names conflict with existing columns, the existing columns will be dropped.
`match_field`::
The fields in the input to match against the table.
diff --git a/docs/reference/esql/processing-commands/rename.asciidoc b/docs/reference/esql/processing-commands/rename.asciidoc
index 773fe8b640f75..0f338ed6e15e8 100644
--- a/docs/reference/esql/processing-commands/rename.asciidoc
+++ b/docs/reference/esql/processing-commands/rename.asciidoc
@@ -15,7 +15,9 @@ RENAME old_name1 AS new_name1[, ..., old_nameN AS new_nameN]
The name of a column you want to rename.
`new_nameX`::
-The new name of the column.
+The new name of the column. If it conflicts with an existing column name,
+the existing column is dropped. If multiple columns are renamed to the same
+name, all but the rightmost column with the same new name are dropped.
*Description*
diff --git a/docs/reference/esql/processing-commands/stats.asciidoc b/docs/reference/esql/processing-commands/stats.asciidoc
index fe84c56bbfc19..21b91eafd3198 100644
--- a/docs/reference/esql/processing-commands/stats.asciidoc
+++ b/docs/reference/esql/processing-commands/stats.asciidoc
@@ -2,6 +2,9 @@
[[esql-stats-by]]
=== `STATS ... BY`
+The `STATS ... BY` processing command groups rows according to a common value
+and calculates one or more aggregated values over the grouped rows.
+
**Syntax**
[source,esql]
@@ -15,12 +18,15 @@ STATS [column1 =] expression1[, ..., [columnN =] expressionN]
`columnX`::
The name by which the aggregated value is returned. If omitted, the name is
equal to the corresponding expression (`expressionX`).
+If multiple columns have the same name, all but the rightmost column with this
+name will be ignored.
`expressionX`::
An expression that computes an aggregated value.
`grouping_expressionX`::
An expression that outputs the values to group by.
+If its name coincides with one of the computed columns, that column will be ignored.
NOTE: Individual `null` values are skipped when computing aggregations.
@@ -35,6 +41,10 @@ The following <> are supported:
include::../functions/aggregation-functions.asciidoc[tag=agg_list]
+The following <> are supported:
+
+include::../functions/grouping-functions.asciidoc[tag=group_list]
+
NOTE: `STATS` without any groups is much much faster than adding a group.
NOTE: Grouping on a single expression is currently much more optimized than grouping
diff --git a/docs/reference/esql/source-commands/from.asciidoc b/docs/reference/esql/source-commands/from.asciidoc
index 9ab21e8996aa0..1abe7dcb2fa9b 100644
--- a/docs/reference/esql/source-commands/from.asciidoc
+++ b/docs/reference/esql/source-commands/from.asciidoc
@@ -58,24 +58,22 @@ today's index:
FROM
----
-Use comma-separated lists or wildcards to query multiple data streams, indices,
-or aliases:
+Use comma-separated lists or wildcards to <>:
[source,esql]
----
FROM employees-00001,other-employees-*
----
-Use the format `:` to query data streams and indices
-on remote clusters:
+Use the format `:` to <>:
[source,esql]
----
FROM cluster_one:employees-00001,cluster_two:other-employees-*
----
-See <>.
-
Use the optional `METADATA` directive to enable <>:
[source,esql]
diff --git a/docs/reference/esql/source-commands/row.asciidoc b/docs/reference/esql/source-commands/row.asciidoc
index adce844f365b8..d127080415f37 100644
--- a/docs/reference/esql/source-commands/row.asciidoc
+++ b/docs/reference/esql/source-commands/row.asciidoc
@@ -13,6 +13,7 @@ ROW column1 = value1[, ..., columnN = valueN]
`columnX`::
The column name.
+In case of duplicate column names, only the rightmost duplicate creates a column.
`valueX`::
The value for the column. Can be a literal, an expression, or a
diff --git a/docs/reference/features/apis/features-apis.asciidoc b/docs/reference/features/apis/features-apis.asciidoc
index fe06471cff0df..83414b69fabf3 100644
--- a/docs/reference/features/apis/features-apis.asciidoc
+++ b/docs/reference/features/apis/features-apis.asciidoc
@@ -7,7 +7,7 @@ by Elasticsearch and Elasticsearch plugins.
[discrete]
=== Features APIs
* <>
-* <>
+* <>
include::get-features-api.asciidoc[]
include::reset-features-api.asciidoc[]
diff --git a/docs/reference/geospatial-analysis.asciidoc b/docs/reference/geospatial-analysis.asciidoc
index 7577bb222127f..6760040e14bc7 100644
--- a/docs/reference/geospatial-analysis.asciidoc
+++ b/docs/reference/geospatial-analysis.asciidoc
@@ -2,7 +2,7 @@
[[geospatial-analysis]]
= Geospatial analysis
-Did you know that {es} has geospatial capabilities? https://www.elastic.co/blog/geo-location-and-search[{es} and geo] go way back, to 2010. A lot has happened since then and today {es} provides robust geospatial capabilities with speed, all with a stack that scales automatically.
+Did you know that {es} has geospatial capabilities? https://www.elastic.co/blog/geo-location-and-search[{es} and geo] go way back, to 2010. A lot has happened since then and today {es} provides robust geospatial capabilities with speed, all with a stack that scales automatically.
Not sure where to get started with {es} and geo? Then, you have come to the right place.
@@ -18,8 +18,10 @@ Have an index with lat/lon pairs but no geo_point mapping? Use <> lets you clean, transform, and augment your data before indexing.
+Data is often messy and incomplete. <> lets you clean, transform, and augment your data before indexing.
+* Use <> together with <> to index CSV files with geo data.
+ Kibana's {kibana-ref}/import-geospatial-data.html[Import CSV] feature can help with this.
* Use <> to add geographical location of an IPv4 or IPv6 address.
* Use <> to convert grid tiles or hexagonal cell ids to bounding boxes or polygons which describe their shape.
* Use <> for reverse geocoding. For example, use {kibana-ref}/reverse-geocoding-tutorial.html[reverse geocoding] to visualize metropolitan areas by web traffic.
@@ -30,6 +32,18 @@ Data is often messy and incomplete. <> lets you clean,
<> answer location-driven questions. Find documents that intersect with, are within, are contained by, or do not intersect your query geometry. Combine geospatial queries with full text search queries for unparalleled searching experience. For example, "Show me all subscribers that live within 5 miles of our new gym location, that joined in the last year and have running mentioned in their profile".
+[discrete]
+[[esql-query]]
+=== ES|QL
+
+<> has support for <> functions, enabling efficient index searching for documents that intersect with, are within, are contained by, or are disjoint from a query geometry. In addition, the `ST_DISTANCE` function calculates the distance between two points.
+
+* experimental:[] <>
+* experimental:[] <>
+* experimental:[] <>
+* experimental:[] <>
+* experimental:[] <>
+
[discrete]
[[geospatial-aggregate]]
=== Aggregate
@@ -42,12 +56,12 @@ Geospatial bucket aggregations:
* <> groups geo_point and geo_shape values into buckets that represent a grid.
* <> groups geo_point and geo_shape values into buckets that represent an H3 hexagonal cell.
* <> groups geo_point and geo_shape values into buckets that represent a grid. Each cell corresponds to a {wikipedia}/Tiled_web_map[map tile] as used by many online map sites.
-
+
Geospatial metric aggregations:
* <> computes the geographic bounding box containing all values for a Geopoint or Geoshape field.
* <> computes the weighted centroid from all coordinate values for geo fields.
-* <> aggregates all geo_point values within a bucket into a LineString ordered by the chosen sort field. Use geo_line aggregation to create {kibana-ref}/asset-tracking-tutorial.html[vehicle tracks].
+* <> aggregates all geo_point values within a bucket into a LineString ordered by the chosen sort field. Use geo_line aggregation to create {kibana-ref}/asset-tracking-tutorial.html[vehicle tracks].
Combine aggregations to perform complex geospatial analysis. For example, to calculate the most recent GPS tracks per flight, use a <> to group documents into buckets per aircraft. Then use geo-line aggregation to compute a track for each aircraft. In another example, use geotile grid aggregation to group documents into a grid. Then use geo-centroid aggregation to find the weighted centroid of each grid cell.
@@ -79,4 +93,4 @@ Put machine learning to work for you and find the data that should stand out wit
Let your location data drive insights and action with {kibana-ref}/geo-alerting.html[geographic alerts]. Commonly referred to as geo-fencing, track moving objects as they enter or exit a boundary to receive notifications through common business systems (email, Slack, Teams, PagerDuty, and more).
-Interested in learning more? Follow {kibana-ref}/asset-tracking-tutorial.html[step-by-step instructions] for setting up tracking containment alerts to monitor moving vehicles.
\ No newline at end of file
+Interested in learning more? Follow {kibana-ref}/asset-tracking-tutorial.html[step-by-step instructions] for setting up tracking containment alerts to monitor moving vehicles.
diff --git a/docs/reference/health/health.asciidoc b/docs/reference/health/health.asciidoc
index 6ac7bd2001d45..34714e80e1b18 100644
--- a/docs/reference/health/health.asciidoc
+++ b/docs/reference/health/health.asciidoc
@@ -204,9 +204,8 @@ for health status set `verbose` to `false` to disable the more expensive analysi
`help_url` field.
`affected_resources`::
- (Optional, array of strings) If the root cause pertains to multiple resources in the
- cluster (like indices, shards, nodes, etc...) this will hold all resources that this
- diagnosis is applicable for.
+ (Optional, object) An object where the keys represent resource types (for example, indices, shards),
+ and the values are lists of the specific resources affected by the issue.
`help_url`::
(string) A link to the troubleshooting guide that'll fix the health problem.
diff --git a/docs/reference/high-availability/cluster-design.asciidoc b/docs/reference/high-availability/cluster-design.asciidoc
index 6c17a494f36ae..105c8b236b0b1 100644
--- a/docs/reference/high-availability/cluster-design.asciidoc
+++ b/docs/reference/high-availability/cluster-design.asciidoc
@@ -246,7 +246,8 @@ accumulate into a noticeable performance penalty. An unreliable network may
have frequent network partitions. {es} will automatically recover from a
network partition as quickly as it can but your cluster may be partly
unavailable during a partition and will need to spend time and resources to
-resynchronize any missing data and rebalance itself once the partition heals.
+<> and <>
+itself once the partition heals.
Recovering from a failure may involve copying a large amount of data between
nodes so the recovery time is often determined by the available bandwidth.
diff --git a/docs/reference/how-to/knn-search.asciidoc b/docs/reference/how-to/knn-search.asciidoc
index 194d122cef159..18882380ce160 100644
--- a/docs/reference/how-to/knn-search.asciidoc
+++ b/docs/reference/how-to/knn-search.asciidoc
@@ -45,6 +45,12 @@ results contains the full document `_source`. When the documents contain
high-dimensional `dense_vector` fields, the `_source` can be quite large and
expensive to load. This could significantly slow down the speed of kNN search.
+NOTE: <>, <>,
+and <> operations generally
+require the `_source` field. Disabling `_source` for a field might result in
+unexpected behavior for these operations. For example, reindex might not actually
+contain the `dense_vector` field in the new index.
+
You can disable storing `dense_vector` fields in the `_source` through the
<> mapping parameter. This prevents loading and
returning large vectors during search, and also cuts down on the index size.
@@ -102,14 +108,14 @@ merges smaller segments into larger ones through a background
explicit steps to reduce the number of index segments.
[discrete]
-==== Force merge to one segment
-
-The <> operation forces an index merge. If you
-force merge to one segment, the kNN search only need to check a single,
-all-inclusive HNSW graph. Force merging `dense_vector` fields is an expensive
-operation that can take significant time to complete.
-
-include::{es-ref-dir}/indices/forcemerge.asciidoc[tag=force-merge-read-only-warn]
+==== Increase maximum segment size
+
+{es} provides many tunable settings for controlling the merge process. One
+important setting is `index.merge.policy.max_merged_segment`. This controls
+the maximum size of the segments that are created during the merge process.
+By increasing the value, you can reduce the number of segments in the index.
+The default value is `5GB`, but that might be too small for larger dimensional vectors.
+Consider increasing this value to `10GB` or `20GB` can help reduce the number of segments.
[discrete]
==== Create large segments during bulk indexing
diff --git a/docs/reference/how-to/size-your-shards.asciidoc b/docs/reference/how-to/size-your-shards.asciidoc
index 56e5fbbf15c77..6baac25aa0532 100644
--- a/docs/reference/how-to/size-your-shards.asciidoc
+++ b/docs/reference/how-to/size-your-shards.asciidoc
@@ -152,9 +152,10 @@ same data. However, very large shards can also cause slower searches and will
take longer to recover after a failure.
There is no hard limit on the physical size of a shard, and each shard can in
-theory contain up to just over two billion documents. However, experience shows
-that shards between 10GB and 50GB typically work well for many use cases, as
-long as the per-shard document count is kept below 200 million.
+theory contain up to <>. However, experience shows that shards between 10GB and 50GB
+typically work well for many use cases, as long as the per-shard document count
+is kept below 200 million.
You may be able to use larger shards depending on your network and use case,
and smaller shards may be appropriate for
@@ -184,6 +185,29 @@ index prirep shard store
// TESTRESPONSE[s/\.ds-my-data-stream-2099\.05\.06-000001/my-index-000001/]
// TESTRESPONSE[s/50gb/.*/]
+If an index's shard is experiencing degraded performance from surpassing the
+recommended 50GB size, you may consider fixing the index's shards' sizing.
+Shards are immutable and therefore their size is fixed in place,
+so indices must be copied with corrected settings. This requires first ensuring
+sufficient disk to copy the data. Afterwards, you can copy the index's data
+with corrected settings via one of the following options:
+
+* running <> to increase number of primary
+shards
+
+* creating a destination index with corrected settings and then running
+<>
+
+Kindly note performing a <> and/or
+<> would be insufficient to resolve shards'
+sizing.
+
+Once a source index's data is copied into its destination index, the source
+index can be <>. You may then consider setting
+<> against the destination index for the source
+index's name to point to it for continuity.
+
+
[discrete]
[[shard-count-recommendation]]
==== Master-eligible nodes should have at least 1GB of heap per 3000 indices
@@ -544,3 +568,42 @@ PUT _cluster/settings
}
}
----
+
+[discrete]
+[[troubleshooting-max-docs-limit]]
+==== Number of documents in the shard cannot exceed [2147483519]
+
+Each {es} shard is a separate Lucene index, so it shares Lucene's
+https://github.com/apache/lucene/issues/5176[`MAX_DOC` limit] of having at most
+2,147,483,519 (`(2^31)-129`) documents. This per-shard limit applies to the sum
+of `docs.count` plus `docs.deleted` as reported by the <>. Exceeding this limit will result in errors like the following:
+
+[source,txt]
+----
+Elasticsearch exception [type=illegal_argument_exception, reason=Number of documents in the shard cannot exceed [2147483519]]
+----
+
+TIP: This calculation may differ from the <>
+calculation, because the Count API does not include nested documents and does
+not count deleted documents.
+
+This limit is much higher than the <> of approximately 200M documents per shard.
+
+If you encounter this problem, try to mitigate it by using the
+<> to merge away some deleted docs. For
+example:
+
+[source,console]
+----
+POST my-index-000001/_forcemerge?only_expunge_deletes=true
+----
+// TEST[setup:my_index]
+
+This will launch an asynchronous task which can be monitored via the
+<>.
+
+It may also be helpful to <>,
+or to <> or <> the index into
+one with a larger number of shards.
diff --git a/docs/reference/ilm/actions/ilm-delete.asciidoc b/docs/reference/ilm/actions/ilm-delete.asciidoc
index eac3b9804709a..beed60105ed96 100644
--- a/docs/reference/ilm/actions/ilm-delete.asciidoc
+++ b/docs/reference/ilm/actions/ilm-delete.asciidoc
@@ -15,6 +15,18 @@ Deletes the searchable snapshot created in a previous phase.
Defaults to `true`.
This option is applicable when the <> action is used in any previous phase.
++
+If you set this option to `false`, use the <> to remove {search-snaps} from your snapshot repository when
+they are no longer needed.
++
+If you manually delete an index before the {ilm-cap} delete phase runs, then
+{ilm-init} will not delete the underlying {search-snap}. Use the
+<> to remove the {search-snap} from
+your snapshot repository when it is no longer needed.
++
+See <> for
+further information about deleting {search-snaps}.
WARNING: If a policy with a searchable snapshot action is applied on an existing searchable snapshot index,
the snapshot backing this index will NOT be deleted because it was not created by this policy. If you want
diff --git a/docs/reference/ilm/apis/delete-lifecycle.asciidoc b/docs/reference/ilm/apis/delete-lifecycle.asciidoc
index 632cb982b3968..fc9a35e4ef570 100644
--- a/docs/reference/ilm/apis/delete-lifecycle.asciidoc
+++ b/docs/reference/ilm/apis/delete-lifecycle.asciidoc
@@ -5,7 +5,7 @@
Delete policy
++++
-Deletes an index lifecycle policy.
+Deletes an index <> policy.
[[ilm-delete-lifecycle-request]]
==== {api-request-title}
diff --git a/docs/reference/ilm/apis/explain.asciidoc b/docs/reference/ilm/apis/explain.asciidoc
index 348a9e7f99e78..a1ddde8c9f2d9 100644
--- a/docs/reference/ilm/apis/explain.asciidoc
+++ b/docs/reference/ilm/apis/explain.asciidoc
@@ -5,7 +5,7 @@
Explain lifecycle
++++
-Retrieves the current lifecycle status for one or more indices. For data
+Retrieves the current <> status for one or more indices. For data
streams, the API retrieves the current lifecycle status for the stream's backing
indices.
diff --git a/docs/reference/ilm/apis/get-lifecycle.asciidoc b/docs/reference/ilm/apis/get-lifecycle.asciidoc
index 7443610065487..b4e07389a9fb7 100644
--- a/docs/reference/ilm/apis/get-lifecycle.asciidoc
+++ b/docs/reference/ilm/apis/get-lifecycle.asciidoc
@@ -5,7 +5,7 @@
Get policy
++++
-Retrieves a lifecycle policy.
+Retrieves a <> policy.
[[ilm-get-lifecycle-request]]
==== {api-request-title}
diff --git a/docs/reference/ilm/apis/get-status.asciidoc b/docs/reference/ilm/apis/get-status.asciidoc
index 7e9e963f6f369..f2ab8d65ec9a1 100644
--- a/docs/reference/ilm/apis/get-status.asciidoc
+++ b/docs/reference/ilm/apis/get-status.asciidoc
@@ -7,7 +7,7 @@
Get {ilm} status
++++
-Retrieves the current {ilm} ({ilm-init}) status.
+Retrieves the current <> ({ilm-init}) status.
You can start or stop {ilm-init} with the <> and
<> APIs.
diff --git a/docs/reference/ilm/apis/move-to-step.asciidoc b/docs/reference/ilm/apis/move-to-step.asciidoc
index 19cc9f7088867..f3441fa997cff 100644
--- a/docs/reference/ilm/apis/move-to-step.asciidoc
+++ b/docs/reference/ilm/apis/move-to-step.asciidoc
@@ -5,7 +5,7 @@
Move to step
++++
-Triggers execution of a specific step in the lifecycle policy.
+Triggers execution of a specific step in the <> policy.
[[ilm-move-to-step-request]]
==== {api-request-title}
diff --git a/docs/reference/ilm/apis/put-lifecycle.asciidoc b/docs/reference/ilm/apis/put-lifecycle.asciidoc
index ffd59a14d8c25..390f6b1bb4d15 100644
--- a/docs/reference/ilm/apis/put-lifecycle.asciidoc
+++ b/docs/reference/ilm/apis/put-lifecycle.asciidoc
@@ -5,7 +5,7 @@
Create or update lifecycle policy
++++
-Creates or updates lifecycle policy. See <> for
+Creates or updates <> policy. See <> for
definitions of policy components.
[[ilm-put-lifecycle-request]]
diff --git a/docs/reference/ilm/apis/remove-policy-from-index.asciidoc b/docs/reference/ilm/apis/remove-policy-from-index.asciidoc
index 711eccc298df1..107cab4d5aa19 100644
--- a/docs/reference/ilm/apis/remove-policy-from-index.asciidoc
+++ b/docs/reference/ilm/apis/remove-policy-from-index.asciidoc
@@ -5,7 +5,7 @@
Remove policy
++++
-Removes assigned lifecycle policies from an index or a data stream's backing
+Removes assigned <> policies from an index or a data stream's backing
indices.
[[ilm-remove-policy-request]]
diff --git a/docs/reference/ilm/apis/retry-policy.asciidoc b/docs/reference/ilm/apis/retry-policy.asciidoc
index cb2587fbb151b..8f01f15e0c3ad 100644
--- a/docs/reference/ilm/apis/retry-policy.asciidoc
+++ b/docs/reference/ilm/apis/retry-policy.asciidoc
@@ -5,7 +5,7 @@
Retry policy
++++
-Retry executing the policy for an index that is in the ERROR step.
+Retry executing the <> policy for an index that is in the ERROR step.
[[ilm-retry-policy-request]]
==== {api-request-title}
diff --git a/docs/reference/ilm/apis/start.asciidoc b/docs/reference/ilm/apis/start.asciidoc
index 32db585c6b14c..c38b3d9ca8831 100644
--- a/docs/reference/ilm/apis/start.asciidoc
+++ b/docs/reference/ilm/apis/start.asciidoc
@@ -7,7 +7,7 @@
Start {ilm}
++++
-Start the {ilm} ({ilm-init}) plugin.
+Start the <> ({ilm-init}) plugin.
[[ilm-start-request]]
==== {api-request-title}
diff --git a/docs/reference/ilm/apis/stop.asciidoc b/docs/reference/ilm/apis/stop.asciidoc
index 1e9cfb94d0b1f..a6100d794c2d3 100644
--- a/docs/reference/ilm/apis/stop.asciidoc
+++ b/docs/reference/ilm/apis/stop.asciidoc
@@ -7,7 +7,7 @@
Stop {ilm}
++++
-Stop the {ilm} ({ilm-init}) plugin.
+Stop the <> ({ilm-init}) plugin.
[[ilm-stop-request]]
==== {api-request-title}
diff --git a/docs/reference/ilm/error-handling.asciidoc b/docs/reference/ilm/error-handling.asciidoc
index d922fa6687823..f810afc6c2b5f 100644
--- a/docs/reference/ilm/error-handling.asciidoc
+++ b/docs/reference/ilm/error-handling.asciidoc
@@ -2,7 +2,7 @@
[[index-lifecycle-error-handling]]
== Troubleshooting {ilm} errors
-When {ilm-init} executes a lifecycle policy, it's possible for errors to occur
+When <> executes a lifecycle policy, it's possible for errors to occur
while performing the necessary index operations for a step.
When this happens, {ilm-init} moves the index to an `ERROR` step.
If {ilm-init} cannot resolve the error automatically, execution is halted
diff --git a/docs/reference/ilm/ilm-index-lifecycle.asciidoc b/docs/reference/ilm/ilm-index-lifecycle.asciidoc
index acf59645dae13..040e02742f5e7 100644
--- a/docs/reference/ilm/ilm-index-lifecycle.asciidoc
+++ b/docs/reference/ilm/ilm-index-lifecycle.asciidoc
@@ -5,7 +5,7 @@
Index lifecycle
++++
-{ilm-init} defines five index lifecycle _phases_:
+<> defines five index lifecycle _phases_:
* **Hot**: The index is actively being updated and queried.
* **Warm**: The index is no longer being updated but is still being queried.
diff --git a/docs/reference/index-modules.asciidoc b/docs/reference/index-modules.asciidoc
index 04bebfae2763b..7232de12c8c50 100644
--- a/docs/reference/index-modules.asciidoc
+++ b/docs/reference/index-modules.asciidoc
@@ -81,8 +81,9 @@ breaking change].
If you are updating the compression type, the new one will be applied
after segments are merged. Segment merging can be forced using
<>. Experiments with indexing log datasets
- have shown that `best_compression` gives up to ~18% lower storage usage
- compared to `default` while only minimally affecting indexing throughput (~2%).
+ have shown that `best_compression` gives up to ~18% lower storage usage in
+ the most ideal scenario compared to `default` while only minimally affecting
+ indexing throughput (~2%).
[[index-mode-setting]] `index.mode`::
+
@@ -112,7 +113,7 @@ Index mode supports the following values:
`time_series`::: Index mode optimized for storage of metrics documented in <>.
-`logs`::: Index mode optimized for storage of logs. It applies default sort settings on the `hostname` and `timestamp` fields and uses <>. <> on different fields is still allowed.
+`logsdb`::: Index mode optimized for storage of logs. It applies default sort settings on the `hostname` and `timestamp` fields and uses <>. <