Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
6b76e1a
LikeListPushdown
julian-elastic Jun 17, 2025
cc2c7d0
Update docs/changelog/129557.yaml
julian-elastic Jun 17, 2025
b597a54
Address code review comments
julian-elastic Jun 17, 2025
095e63d
Add printable discription for push down Automata
julian-elastic Jun 20, 2025
d0ff62f
Add printable description for push down Automata
julian-elastic Jun 20, 2025
bce3c94
[CI] Auto commit changes from spotless
Jun 20, 2025
e36c0e4
Make flattened synthetic source concatenate object keys on scalar/obj…
parkertimmins Jun 20, 2025
f018441
ESQL: Fix misspelling in generated docs (#129789)
nik9000 Jun 20, 2025
95c1588
datafeed: check remote_cluster_client before cluster aliases in start…
schase-es Jun 20, 2025
30284d7
Mute org.elasticsearch.search.query.RescoreKnnVectorQueryIT testKnnQu…
elasticsearchmachine Jun 21, 2025
d57c929
Upgrade to Lucene 10.2.2 (#129546)
ChrisHegarty Jun 22, 2025
6f6db8e
Mute org.elasticsearch.search.query.RescoreKnnVectorQueryIT testKnnRe…
elasticsearchmachine Jun 22, 2025
9c01e97
Mute org.elasticsearch.qa.verify_version_constants.VerifyVersionConst…
elasticsearchmachine Jun 22, 2025
37a2364
Mute org.elasticsearch.xpack.esql.qa.single_node.GenerativeIT test #1…
elasticsearchmachine Jun 22, 2025
31bf215
Reduce data amplification in IVFVectorsWriter (#129698)
iverase Jun 23, 2025
0e6d09b
Mute org.elasticsearch.index.engine.ThreadPoolMergeExecutorServiceDis…
elasticsearchmachine Jun 23, 2025
f672350
Force niofs for fdt tmp file read access when flushing stored fields …
martijnvg Jun 23, 2025
21c8ab0
Make GeoIp downloader multi-project aware (#128282)
samxbr Jun 23, 2025
06532e6
Split up bc and pr upgrade tests (#129756)
breskeby Jun 23, 2025
7de59c3
ES|QL: enable EXPLAIN (snapshot only) (#129526)
luigidellaquila Jun 23, 2025
e94556d
docs-builder: add `pull-requests: write` permission to docs-build wor…
reakaleek Jun 23, 2025
59e4313
Add FORK generator back (#129790)
ioanatia Jun 23, 2025
1594a36
Port IndexVersions.UPGRADE_TO_LUCENE_9_12_2 to main (#129832)
ChrisHegarty Jun 23, 2025
f021ab2
[UIAM] Cloud API key authentication metadata and validations (#129227)
slobodanadamovic Jun 23, 2025
5f8a602
ESQL: Pushdown Lookup Join past Project (#129503)
alex-spies Jun 23, 2025
a7d7ca5
Fix generative tests (#129833)
luigidellaquila Jun 23, 2025
3db3aea
Remove es.serverless_transport=true (#129760)
ldematte Jun 23, 2025
94443e5
ES|QL: Add number of max branches for FORK (#129834)
ioanatia Jun 23, 2025
bbe2956
Address code review feedback
julian-elastic Jun 23, 2025
4830dc8
Add support for RLIKE (LIST)
julian-elastic Jun 23, 2025
bf677a5
Add support for RLIKE (LIST)
julian-elastic Jun 18, 2025
f22d7e7
Fix merge conflicts
julian-elastic Jun 23, 2025
9e87a37
refactor and bugfix
julian-elastic Jun 23, 2025
9e3b2ec
bugfix and fix UTs
julian-elastic Jun 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
29 changes: 13 additions & 16 deletions .buildkite/scripts/run-bc-upgrade-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,20 +56,17 @@ echo "Running BC upgrade tests on $BUILDKITE_BRANCH [$BC_VERSION] using BC (or s

cat <<EOF | buildkite-agent pipeline upload
steps:
- label: bc-upgrade $BC_BUILD_ID -> $BUILDKITE_BRANCH
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-file-fingerprints -Dtests.bwc.main.version=${BC_VERSION} -Dtests.bwc.refspec.main=${BC_COMMIT_HASH} bcUpgradeTest -Dtests.jvm.argline="-Des.serverless_transport=true"
timeout_in_minutes: 300
agents:
provider: gcp
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
retry:
automatic:
- exit_status: "-1"
limit: 3
signal_reason: none
- signal_reason: agent_stop
limit: 3
- group: "bc-upgrade $BC_BUILD_ID -> $BUILDKITE_BRANCH"
steps:
- label: "bc-upgrade-tests-part{{matrix.PART}}"
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-file-fingerprints -Dtests.bwc.main.version=${BC_VERSION} -Dtests.bwc.refspec.main=${BC_COMMIT_HASH} bcUpgradeTestPart{{matrix.PART}}
timeout_in_minutes: 300
agents:
provider: gcp
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
matrix:
setup:
PART: ["1", "2", "3", "4", "5", "6"]
EOF
31 changes: 14 additions & 17 deletions .buildkite/scripts/run-pr-upgrade-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,19 @@ VERSION=$(sed -n 's/^elasticsearch[[:space:]]*=[[:space:]]*\(.*\)/\1/p' build-to

echo "Running PR upgrade tests from $BUILDKITE_PULL_REQUEST_BASE_BRANCH [$BASE_COMMIT] to $BUILDKITE_BRANCH [$BUILDKITE_COMMIT]."

cat <<EOF | buildkite-agent pipeline upload
cat << EOF | buildkite-agent pipeline upload
steps:
- label: pr-upgrade $BUILDKITE_PULL_REQUEST_BASE_BRANCH -> $BUILDKITE_BRANCH
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-file-fingerprints -Dtests.bwc.main.version=${VERSION}-SNAPSHOT -Dtests.bwc.refspec.main=${BASE_COMMIT} bcUpgradeTest -Dtests.jvm.argline="-Des.serverless_transport=true"
timeout_in_minutes: 300
agents:
provider: gcp
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
preemptible: true
retry:
automatic:
- exit_status: "-1"
limit: 3
signal_reason: none
- signal_reason: agent_stop
limit: 3
- group: "pr-upgrade $BUILDKITE_PULL_REQUEST_BASE_BRANCH -> $BUILDKITE_BRANCH"
steps:
- label: "pr-upgrade-part-{{matrix.PART}}"
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-file-fingerprints -Dtests.bwc.main.version=${VERSION}-SNAPSHOT -Dtests.bwc.refspec.main=${BASE_COMMIT} bcUpgradeTestPart{{matrix.PART}}
timeout_in_minutes: 300
agents:
provider: gcp
image: family/elasticsearch-ubuntu-2004
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
matrix:
setup:
PART: ["1", "2", "3", "4", "5", "6"]
EOF
2 changes: 1 addition & 1 deletion .github/workflows/docs-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ jobs:
deployments: write
id-token: write
contents: read
pull-requests: read
pull-requests: write
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.search.IndexOrDocValuesQuery;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.IndexSortSortedNumericDocValuesRangeQuery;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.SortedNumericSortField;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.BytesRef;
import org.elasticsearch.lucene.search.XIndexSortSortedNumericDocValuesRangeQuery;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Fork;
Expand Down Expand Up @@ -295,7 +295,7 @@ public void rangeQueryWithDocValuesSkipper(final Blackhole bh) throws IOExceptio
/**
* Runs the actual Lucene range query, optionally combining a {@link LongPoint} index query
* with doc values ({@link SortedNumericDocValuesField}) via {@link IndexOrDocValuesQuery},
* and then wrapping it with an {@link XIndexSortSortedNumericDocValuesRangeQuery} to utilize the index sort.
* and then wrapping it with an {@link IndexSortSortedNumericDocValuesRangeQuery} to utilize the index sort.
*
* @param searcher the Lucene {@link IndexSearcher}
* @param rangeStartTimestamp lower bound of the timestamp range
Expand All @@ -316,7 +316,7 @@ private long rangeQuery(final IndexSearcher searcher, long rangeStartTimestamp,
)
: SortedNumericDocValuesField.newSlowRangeQuery(TIMESTAMP_FIELD, rangeStartTimestamp, rangeEndTimestamp);

final Query query = new XIndexSortSortedNumericDocValuesRangeQuery(
final Query query = new IndexSortSortedNumericDocValuesRangeQuery(
TIMESTAMP_FIELD,
rangeStartTimestamp,
rangeEndTimestamp,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,3 @@ org.apache.logging.log4j.message.ParameterizedMessage#<init>(java.lang.String, j

@defaultMessage Use WriteLoadForecaster#getForecastedWriteLoad instead
org.elasticsearch.cluster.metadata.IndexMetadata#getForecastedWriteLoad()

# This is a temporary patch as there is a low level Lucene bug in certain scenarios
# this should be fixed in the new Lucene release 10.3+
org.apache.lucene.document.LongField#newExactQuery(java.lang.String, long) @ Use org.elasticsearch.lucene.document.NumericField#newExactLongQuery(java.lang.String, long) instead.
org.apache.lucene.document.LongField#newRangeQuery(java.lang.String, long, long) @ Use org.elasticsearch.lucene.document.NumericField#newRangeLongQuery(java.lang.String, long, long) instead.
org.apache.lucene.document.IntField#newExactQuery(java.lang.String, int) @ Use org.elasticsearch.lucene.document.NumericField#newExactIntQuery(java.lang.String, int) instead.
org.apache.lucene.document.IntField#newRangeQuery(java.lang.String, int, int) @ Use org.elasticsearch.lucene.document.NumericField#newRangeIntQuery(java.lang.String, int, int) instead.
org.apache.lucene.search.IndexSortSortedNumericDocValuesRangeQuery @ use org.elasticsearch.lucene.search.XIndexSortSortedNumericDocValuesRangeQuery instead.
2 changes: 1 addition & 1 deletion build-tools-internal/version.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
elasticsearch = 9.1.0
lucene = 10.2.1
lucene = 10.2.2

bundled_jdk_vendor = openjdk
bundled_jdk = 24+36@1f9ff9062db4449d8ca828c504ffae90
Expand Down
110 changes: 30 additions & 80 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -351,95 +351,45 @@ allprojects {
}
}

def splitForCI = { proj, partString ->
proj.tasks.register("check$partString") {
dependsOn 'check'
withReleaseBuild {
dependsOn 'assemble'
}
}

proj.tasks.addRule("Pattern: v<BWC_VERSION>#bwcTest$partString") { name ->
if(name.endsWith("#bwcTest$partString")) {
proj.project.getTasks().register(name) {
task -> task.dependsOn(proj.tasks.named { tskName -> tskName == (name - partString) })
}
}
}

proj.tasks.register("bcUpgradeTest$partString") {
dependsOn tasks.matching { it.name == 'bcUpgradeTest' }
withReleaseBuild {
dependsOn 'assemble'
}
}
}

plugins.withId('lifecycle-base') {
if (project.path.startsWith(":x-pack:")) {
if (project.path.contains("security") || project.path.contains(":ml")) {
tasks.register('checkPart4') {
dependsOn 'check'
withReleaseBuild {
dependsOn 'assemble'
}
}

tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart4") { name ->
if(name.endsWith("#bwcTestPart4")) {
project.getTasks().register(name) {
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part4") })
}
}
}
splitForCI(project, "Part4")
} else if (project.path == ":x-pack:plugin" || project.path.contains("ql") || project.path.contains("smoke-test")) {
tasks.register('checkPart3') {
dependsOn 'check'
withReleaseBuild {
dependsOn 'assemble'
}
}

tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart3") { name ->
if(name.endsWith("#bwcTestPart3")) {
project.getTasks().register(name) {
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part3") })
}
}
}
splitForCI(project, "Part3")
} else if (project.path.contains("multi-node")) {
tasks.register('checkPart5') {
dependsOn 'check'
withReleaseBuild {
dependsOn 'assemble'
}
}
tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart5") { name ->
if(name.endsWith("#bwcTestPart5")) {
project.getTasks().register(name) {
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part5") })
}
}
}
splitForCI(project, "Part5")
} else {
tasks.register('checkPart2') {
dependsOn 'check'
withReleaseBuild {
dependsOn 'assemble'
}
}
tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart2") { name ->
if(name.endsWith("#bwcTestPart2")) {
project.getTasks().register(name) {
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part2") })
}
}
}
splitForCI(project, "Part2")
}
} else if(project.path.startsWith(":qa:")) {
tasks.register('checkPart6') {
dependsOn 'check'
withReleaseBuild {
dependsOn 'assemble'
}
}
tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart6") { name ->
if(name.endsWith("#bwcTestPart6")) {
project.getTasks().register(name) {
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part6") })
}
}
}
splitForCI(project, "Part6")
} else {
tasks.register('checkPart1') {
dependsOn 'check'
withReleaseBuild {
dependsOn 'assemble'
}
}
tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart1") { name ->
if(name.endsWith("#bwcTestPart1")) {
project.getTasks().register(name) {
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part1") })
}
}
}
splitForCI(project, "Part1")
}
tasks.register('functionalTests') {
dependsOn 'check'
Expand Down
4 changes: 2 additions & 2 deletions docs/Versions.asciidoc
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@

include::{docs-root}/shared/versions/stack/{source_branch}.asciidoc[]

:lucene_version: 10.2.1
:lucene_version_path: 10_2_1
:lucene_version: 10.2.2
:lucene_version_path: 10_2_2
:jdk: 11.0.2
:jdk_major: 11
:build_type: tar
Expand Down
6 changes: 6 additions & 0 deletions docs/changelog/129503.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
pr: 129503
summary: Pushdown Lookup Join past Project
area: ES|QL
type: enhancement
issues:
- 119082
13 changes: 13 additions & 0 deletions docs/changelog/129546.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
pr: 129546
summary: Upgrade to Lucene 10.2.2
area: Search
type: upgrade
issues: []
highlight:
title: Upgrade to lucene 10.2.2
body: |-
* Reduce NeighborArray on-heap memory during HNSW graph building
* Fix IndexSortSortedNumericDocValuesRangeQuery for integer sorting
* ValueSource.fromDoubleValuesSource(dvs).getSortField() would throw errors when used if the DoubleValuesSource needed scores
----
notable: true
5 changes: 5 additions & 0 deletions docs/changelog/129557.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 129557
summary: Pushdown for LIKE (LIST)
area: ES|QL
type: enhancement
issues: []
7 changes: 7 additions & 0 deletions docs/changelog/129600.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
pr: 129600
summary: Make flattened synthetic source concatenate object keys on scalar/object
mismatch
area: Mapping
type: bug
issues:
- 122936
33 changes: 33 additions & 0 deletions docs/reference/elasticsearch/mapping-reference/flattened.md
Original file line number Diff line number Diff line change
Expand Up @@ -364,3 +364,36 @@ Will become (note the nested objects instead of the "flattened" array):
}
}
```

Flattened fields allow for a key to contain both an object and a scalar value.
For example, consider the following flattened field `flattened`:

```console-result
{
"flattened": {
"foo.bar": "10",
"foo": {
"bar": {
"baz": "20"
}
}
}
}
```

Because `"foo.bar": "10"` is implicitly equivalent to `"foo": { "bar": "10" }`,
`"bar"` has both a scalar value `"10"`, and an object value of `{ "baz": "20" }`.

With synthetic source, to produce a valid JSON output, objects with such fields will appear differently in `_source`.
For example, if the field is defined in an index configured with synthetic source, the value of `_source` would be:

```console-result
{
"flattened": {
"foo": {
"bar": "10",
"bar.baz": "20"
}
}
}
```
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
% This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.

```esql
ROW key=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
% This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.

```esql
FROM sample_data
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
% This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.

```esql
FROM system_metrics
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
% This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.

```esql
FROM app_logs
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
% This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.

```esql
FROM firewall_logs
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
% This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.

```esql
FROM firewall_logs
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
% This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.

```esql
ROW a = "2023-01-23T12:15:00.000Z - some text - 127.0.0.1"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
% This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.

```esql
ROW a = "2023-01-23T12:15:00.000Z 127.0.0.1 [email protected] 42"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
% This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.

```esql
ROW a = "2023-01-23T12:15:00.000Z - some text - 127.0.0.1"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
% This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.

```esql
ROW a = "2023-01-23T12:15:00.000Z 127.0.0.1 [email protected] 42"
Expand Down
Loading
Loading