Skip to content

Commit c2766c6

Browse files
Merge branch '9.2' into ia-eis-jinav3
2 parents 5f3906d + 67e6c5e commit c2766c6

File tree

25 files changed

+730
-136
lines changed

25 files changed

+730
-136
lines changed

distribution/docker/src/docker/dockerfiles/cloud_ess_fips/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
# Extract Elasticsearch artifact
2626
################################################################################
2727
28-
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:25ce132ade7e8299e7e65dba60ab34ea312f46bce64d1ad8ad11369df4e05a46 AS builder
28+
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:cbdc142a5f87839bf25c86fe25f0904cc3333fdc8a134d38ab47cd11e18ffb1f AS builder
2929
3030
# Install required packages to extract the Elasticsearch distribution
3131
RUN <%= retry.loop(package_manager, "export DEBIAN_FRONTEND=noninteractive && ${package_manager} update && ${package_manager} update && ${package_manager} add --no-cache curl") %>
@@ -104,7 +104,7 @@ WORKDIR /usr/share/elasticsearch/config
104104
# Add entrypoint
105105
################################################################################
106106

107-
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:25ce132ade7e8299e7e65dba60ab34ea312f46bce64d1ad8ad11369df4e05a46
107+
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:cbdc142a5f87839bf25c86fe25f0904cc3333fdc8a134d38ab47cd11e18ffb1f
108108

109109
RUN <%= retry.loop(package_manager,
110110
"export DEBIAN_FRONTEND=noninteractive && \n" +

distribution/docker/src/docker/dockerfiles/wolfi/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
# Extract Elasticsearch artifact
2626
################################################################################
2727
28-
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:1038c51d3e88154a59aea6476f19030ceca257cddcae66abe1d047de7a5ce578 AS builder
28+
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:2b179e1fe69c672bd0844147c6ebb039adb44ddaa3f9b4695f4915a9447da438 AS builder
2929
3030
# Install required packages to extract the Elasticsearch distribution
3131
RUN <%= retry.loop(package_manager, "export DEBIAN_FRONTEND=noninteractive && ${package_manager} update && ${package_manager} update && ${package_manager} add --no-cache curl") %>
@@ -80,7 +80,7 @@ RUN sed -i -e 's/ES_DISTRIBUTION_TYPE=tar/ES_DISTRIBUTION_TYPE=docker/' bin/elas
8080
# Add entrypoint
8181
################################################################################
8282

83-
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:1038c51d3e88154a59aea6476f19030ceca257cddcae66abe1d047de7a5ce578
83+
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:2b179e1fe69c672bd0844147c6ebb039adb44ddaa3f9b4695f4915a9447da438
8484

8585
RUN <%= retry.loop(package_manager,
8686
"export DEBIAN_FRONTEND=noninteractive && \n" +

docs/changelog/138583.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 138583
2+
summary: "Fix: Correctly pickup MRT value for `msearch`'s search requests"
3+
area: CCS
4+
type: bug
5+
issues: []

docs/changelog/139175.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
pr: 139175
2+
summary: "ESQL: Prevent circular alias references in `DeduplicateAggs`"
3+
area: ES|QL
4+
type: bug
5+
issues:
6+
- 138346
7+
- 139541

docs/changelog/139413.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 139413
2+
summary: "[Inference API] Use dimensions field in JinaAI `text_embedding` requests"
3+
area: Inference
4+
type: bug
5+
issues: []

server/src/internalClusterTest/java/org/elasticsearch/search/msearch/MultiSearchIT.java

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,23 @@
1212
import org.elasticsearch.TransportVersion;
1313
import org.elasticsearch.action.search.MultiSearchRequest;
1414
import org.elasticsearch.action.search.MultiSearchResponse.Item;
15+
import org.elasticsearch.action.search.SearchRequest;
16+
import org.elasticsearch.common.bytes.BytesArray;
1517
import org.elasticsearch.common.settings.Settings;
1618
import org.elasticsearch.index.query.QueryBuilders;
19+
import org.elasticsearch.rest.RestRequest;
20+
import org.elasticsearch.rest.action.search.RestMultiSearchAction;
1721
import org.elasticsearch.search.DummyQueryBuilder;
1822
import org.elasticsearch.search.SearchService;
1923
import org.elasticsearch.test.ESIntegTestCase;
2024
import org.elasticsearch.test.TransportVersionUtils;
25+
import org.elasticsearch.test.rest.FakeRestRequest;
26+
import org.elasticsearch.usage.UsageService;
2127
import org.elasticsearch.xcontent.XContentType;
28+
import org.hamcrest.Matchers;
29+
30+
import java.io.IOException;
31+
import java.util.Map;
2232

2333
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertFirstHit;
2434
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount;
@@ -119,4 +129,88 @@ public TransportVersion getMinimalSupportedVersion() {
119129
}
120130
);
121131
}
132+
133+
public void testMrtValuesArePickedCorrectly() throws IOException {
134+
135+
{
136+
// If no MRT is specified, all searches should default to true.
137+
String body = """
138+
{"index": "index-1" }
139+
{"query" : {"match" : { "message": "this is a test"}}}
140+
{"index": "index-2" }
141+
{"query" : {"match_all" : {}}}
142+
""";
143+
144+
MultiSearchRequest mreq = parseRequest(body, Map.of());
145+
for (SearchRequest req : mreq.requests()) {
146+
assertTrue(req.isCcsMinimizeRoundtrips());
147+
}
148+
}
149+
150+
{
151+
// MRT query param is false, so all searches should use this value.
152+
String body = """
153+
{"index": "index-1" }
154+
{"query" : {"match" : { "message": "this is a test"}}}
155+
{"index": "index-2" }
156+
{"query" : {"match_all" : {}}}
157+
""";
158+
159+
MultiSearchRequest mreq = parseRequest(body, Map.of("ccs_minimize_roundtrips", "false"));
160+
for (SearchRequest req : mreq.requests()) {
161+
assertFalse(req.isCcsMinimizeRoundtrips());
162+
}
163+
}
164+
165+
{
166+
// Query param is absent but MRT is specified for each request.
167+
String body = """
168+
{"index": "index-1", "ccs_minimize_roundtrips": false }
169+
{"query" : {"match" : { "message": "this is a test"}}}
170+
{"index": "index-2", "ccs_minimize_roundtrips": false }
171+
{"query" : {"match_all" : {}}}
172+
""";
173+
174+
MultiSearchRequest mreq = parseRequest(body, Map.of());
175+
for (SearchRequest req : mreq.requests()) {
176+
assertFalse(req.isCcsMinimizeRoundtrips());
177+
}
178+
}
179+
180+
{
181+
/*
182+
* The first request overrides the query param and should use MRT=true.
183+
* The second request should use the query param value.
184+
*/
185+
String body = """
186+
{"index": "index-1", "ccs_minimize_roundtrips": true }
187+
{"query" : {"match" : { "message": "this is a test"}}}
188+
{"index": "index-2" }
189+
{"query" : {"match_all" : {}}}
190+
""";
191+
192+
MultiSearchRequest mreq = parseRequest(body, Map.of("ccs_minimize_roundtrips", "false"));
193+
194+
assertThat(mreq.requests().size(), Matchers.is(2));
195+
assertTrue(mreq.requests().getFirst().isCcsMinimizeRoundtrips());
196+
assertFalse(mreq.requests().getLast().isCcsMinimizeRoundtrips());
197+
}
198+
}
199+
200+
private RestRequest mkRequest(String body, Map<String, String> params) {
201+
return new FakeRestRequest.Builder(xContentRegistry()).withMethod(RestRequest.Method.POST)
202+
.withPath("/index*/_msearch")
203+
.withParams(params)
204+
.withContent(new BytesArray(body), XContentType.JSON)
205+
.build();
206+
}
207+
208+
private MultiSearchRequest parseRequest(String body, Map<String, String> params) throws IOException {
209+
return RestMultiSearchAction.parseRequest(
210+
mkRequest(body, params),
211+
true,
212+
new UsageService().getSearchUsageHolder(),
213+
(ignored) -> true
214+
);
215+
}
122216
}

server/src/main/java/org/elasticsearch/rest/action/search/RestMultiSearchAction.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,6 @@ public static MultiSearchRequest parseRequest(
141141
RestSearchAction.validateSearchRequest(restRequest, searchRequest);
142142
if (searchRequest.pointInTimeBuilder() != null) {
143143
RestSearchAction.preparePointInTime(searchRequest, restRequest);
144-
} else {
145-
searchRequest.setCcsMinimizeRoundtrips(
146-
restRequest.paramAsBoolean("ccs_minimize_roundtrips", searchRequest.isCcsMinimizeRoundtrips())
147-
);
148144
}
149145
multiRequest.add(searchRequest);
150146
}, extraParamParser);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
9244000,9185014,9112017,8841078
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
downsample_add_multi_field_sources,8841077
1+
jina_ai_embedding_dimensions_support_added,8841078
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
downsample_add_multi_field_sources,9112016
1+
jina_ai_embedding_dimensions_support_added,9112017

0 commit comments

Comments
 (0)