Skip to content

Commit 47048a2

Browse files
authored
Merge branch 'main' into unmute-test-87695d2
2 parents ae793f2 + 049599c commit 47048a2

File tree

82 files changed

+2521
-420
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+2521
-420
lines changed

modules/percolator/src/internalClusterTest/java/org/elasticsearch/percolator/PercolatorQuerySearchIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1359,7 +1359,7 @@ public void testKnnQueryNotSupportedInPercolator() throws IOException {
13591359
""");
13601360
indicesAdmin().prepareCreate("index1").setMapping(mappings).get();
13611361
ensureGreen();
1362-
QueryBuilder knnVectorQueryBuilder = new KnnVectorQueryBuilder("my_vector", new float[] { 1, 1, 1, 1, 1 }, 10, 10, null, null);
1362+
QueryBuilder knnVectorQueryBuilder = new KnnVectorQueryBuilder("my_vector", new float[] { 1, 1, 1, 1, 1 }, 10, 10, 10f, null, null);
13631363

13641364
IndexRequestBuilder indexRequestBuilder = prepareIndex("index1").setId("knn_query1")
13651365
.setSource(jsonBuilder().startObject().field("my_query", knnVectorQueryBuilder).endObject());

muted-tests.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,6 +528,9 @@ tests:
528528
- class: org.elasticsearch.xpack.esql.ccq.MultiClusterSpecIT
529529
method: test {csv-spec:fork.ForkWithMixOfCommands}
530530
issue: https://github.com/elastic/elasticsearch/issues/134135
531+
- class: org.elasticsearch.xpack.esql.qa.single_node.GenerativeForkIT
532+
method: test {csv-spec:inlinestats.MultiIndexInlinestatsOfMultiTypedField}
533+
issue: https://github.com/elastic/elasticsearch/issues/133973
531534

532535
# Examples:
533536
#

qa/smoke-test-http/src/internalClusterTest/java/org/elasticsearch/http/SearchErrorTraceIT.java

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import org.elasticsearch.action.search.MultiSearchRequest;
1717
import org.elasticsearch.action.search.SearchRequest;
1818
import org.elasticsearch.client.Request;
19-
import org.elasticsearch.common.settings.Settings;
2019
import org.elasticsearch.common.util.CollectionUtils;
2120
import org.elasticsearch.plugins.Plugin;
2221
import org.elasticsearch.search.ErrorTraceHelper;
@@ -25,19 +24,15 @@
2524
import org.elasticsearch.test.MockLog;
2625
import org.elasticsearch.test.transport.MockTransportService;
2726
import org.elasticsearch.xcontent.XContentType;
28-
import org.junit.After;
29-
import org.junit.Before;
3027
import org.junit.BeforeClass;
3128

3229
import java.io.IOException;
3330
import java.nio.charset.Charset;
3431
import java.util.Collection;
35-
import java.util.function.BooleanSupplier;
3632

3733
import static org.elasticsearch.index.query.QueryBuilders.simpleQueryStringQuery;
3834

3935
public class SearchErrorTraceIT extends HttpSmokeTestCase {
40-
private BooleanSupplier hasStackTrace;
4136

4237
@Override
4338
protected Collection<Class<? extends Plugin>> nodePlugins() {
@@ -49,18 +44,6 @@ public static void setDebugLogLevel() {
4944
Configurator.setLevel(SearchService.class, Level.DEBUG);
5045
}
5146

52-
@Before
53-
public void setupMessageListener() {
54-
hasStackTrace = ErrorTraceHelper.setupErrorTraceListener(internalCluster());
55-
// TODO: make this test work with batched query execution by enhancing ErrorTraceHelper.setupErrorTraceListener
56-
updateClusterSettings(Settings.builder().put(SearchService.BATCHED_QUERY_PHASE.getKey(), false));
57-
}
58-
59-
@After
60-
public void resetSettings() {
61-
updateClusterSettings(Settings.builder().putNull(SearchService.BATCHED_QUERY_PHASE.getKey()));
62-
}
63-
6447
private void setupIndexWithDocs() {
6548
createIndex("test1", "test2");
6649
indexRandom(
@@ -86,7 +69,7 @@ public void testSearchFailingQueryErrorTraceDefault() throws IOException {
8669
}
8770
""");
8871
getRestClient().performRequest(searchRequest);
89-
assertFalse(hasStackTrace.getAsBoolean());
72+
ErrorTraceHelper.assertStackTraceCleared(internalCluster());
9073
}
9174

9275
public void testSearchFailingQueryErrorTraceTrue() throws IOException {
@@ -105,7 +88,7 @@ public void testSearchFailingQueryErrorTraceTrue() throws IOException {
10588
""");
10689
searchRequest.addParameter("error_trace", "true");
10790
getRestClient().performRequest(searchRequest);
108-
assertTrue(hasStackTrace.getAsBoolean());
91+
ErrorTraceHelper.assertStackTraceObserved(internalCluster());
10992
}
11093

11194
public void testSearchFailingQueryErrorTraceFalse() throws IOException {
@@ -124,7 +107,7 @@ public void testSearchFailingQueryErrorTraceFalse() throws IOException {
124107
""");
125108
searchRequest.addParameter("error_trace", "false");
126109
getRestClient().performRequest(searchRequest);
127-
assertFalse(hasStackTrace.getAsBoolean());
110+
ErrorTraceHelper.assertStackTraceCleared(internalCluster());
128111
}
129112

130113
public void testDataNodeLogsStackTrace() throws IOException {
@@ -173,7 +156,7 @@ public void testMultiSearchFailingQueryErrorTraceDefault() throws IOException {
173156
new NByteArrayEntity(requestBody, ContentType.create(contentType.mediaTypeWithoutParameters(), (Charset) null))
174157
);
175158
getRestClient().performRequest(searchRequest);
176-
assertFalse(hasStackTrace.getAsBoolean());
159+
ErrorTraceHelper.assertStackTraceCleared(internalCluster());
177160
}
178161

179162
public void testMultiSearchFailingQueryErrorTraceTrue() throws IOException {
@@ -190,7 +173,7 @@ public void testMultiSearchFailingQueryErrorTraceTrue() throws IOException {
190173
);
191174
searchRequest.addParameter("error_trace", "true");
192175
getRestClient().performRequest(searchRequest);
193-
assertTrue(hasStackTrace.getAsBoolean());
176+
ErrorTraceHelper.assertStackTraceObserved(internalCluster());
194177
}
195178

196179
public void testMultiSearchFailingQueryErrorTraceFalse() throws IOException {
@@ -207,8 +190,7 @@ public void testMultiSearchFailingQueryErrorTraceFalse() throws IOException {
207190
);
208191
searchRequest.addParameter("error_trace", "false");
209192
getRestClient().performRequest(searchRequest);
210-
211-
assertFalse(hasStackTrace.getAsBoolean());
193+
ErrorTraceHelper.assertStackTraceCleared(internalCluster());
212194
}
213195

214196
public void testDataNodeLogsStackTraceMultiSearch() throws IOException {

renovate.json

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
33
"extends": [
4-
"github>elastic/renovate-config:only-chainguard",
4+
"github>elastic/renovate-config:base",
5+
"github>elastic/renovate-config:ci-agent-images",
56
":disableDependencyDashboard"
67
],
78
"schedule": [
@@ -10,6 +11,7 @@
1011
"labels": [
1112
">non-issue",
1213
":Delivery/Packaging",
14+
":Delivery/Build",
1315
"Team:Delivery",
1416
"auto-merge-without-approval"
1517
],
@@ -20,5 +22,21 @@
2022
"8.19",
2123
"8.18",
2224
"7.17"
25+
],
26+
"packageRules": [
27+
{
28+
"description": "Don't manage dependencies by default",
29+
"matchPackageNames": [
30+
"*"
31+
],
32+
"enabled": false
33+
},
34+
{
35+
"description": "Explicitly enable Elastic Docker updates",
36+
"matchPackageNames": [
37+
"/docker.elastic.co/.*/"
38+
],
39+
"enabled": true
40+
}
2341
]
2442
}

rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.retrievers/20_knn_retriever.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,30 @@ setup:
5353
- match: {hits.hits.1._id: "3"}
5454
- match: {hits.hits.1.fields.name.0: "rabbit.jpg"}
5555

56+
---
57+
"kNN retrieve with visit_percentage":
58+
- requires:
59+
cluster_features: "mapper.bbq_disk_support"
60+
reason: 'bbq disk support required'
61+
- do:
62+
search:
63+
index: index1
64+
body:
65+
fields: [ "name" ]
66+
retriever:
67+
knn:
68+
field: vector
69+
query_vector: [2, 2, 2, 2, 3]
70+
k: 2
71+
num_candidates: 3
72+
visit_percentage: 1.0
73+
74+
- match: {hits.hits.0._id: "2"}
75+
- match: {hits.hits.0.fields.name.0: "moose.jpg"}
76+
77+
- match: {hits.hits.1._id: "3"}
78+
- match: {hits.hits.1.fields.name.0: "rabbit.jpg"}
79+
5680
---
5781
"kNN retriever with filter":
5882
- do:

rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.vectors/135_knn_query_nested_search_ivf.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,3 +191,27 @@ setup:
191191
- match: {hits.hits.0._id: "3"}
192192
- match: {hits.hits.0.fields.name.0: "rabbit.jpg"}
193193
- match: { hits.hits.0.inner_hits.nested.hits.hits.0.fields.nested.0.paragraph_id.0: "0" }
194+
195+
---
196+
"nested kNN search works with visit_percentage":
197+
- do:
198+
search:
199+
index: test
200+
body:
201+
fields: [ "name" ]
202+
query:
203+
nested:
204+
path: nested
205+
query:
206+
knn:
207+
field: nested.vector
208+
query_vector: [-0.5, 90, -10, 14.8, -156]
209+
num_candidates: 3
210+
visit_percentage: 1.0
211+
- match: {hits.total.value: 3}
212+
213+
- match: {hits.hits.0._id: "2"}
214+
- match: {hits.hits.0.fields.name.0: "moose.jpg"}
215+
216+
- match: {hits.hits.1._id: "3"}
217+
- match: {hits.hits.1.fields.name.0: "rabbit.jpg"}

rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.vectors/46_knn_search_bbq_ivf.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,28 @@ setup:
106106
- match: { hits.hits.1._id: "3" }
107107
- match: { hits.hits.2._id: "2" }
108108
---
109+
"Test knn search with visit_percentage":
110+
- do:
111+
search:
112+
index: bbq_disk
113+
body:
114+
knn:
115+
field: vector
116+
query_vector: [0.128, 0.067, -0.08 , 0.395, -0.11 , -0.259, 0.473, -0.393,
117+
0.292, 0.571, -0.491, 0.444, -0.288, 0.198, -0.343, 0.015,
118+
0.232, 0.088, 0.228, 0.151, -0.136, 0.236, -0.273, -0.259,
119+
-0.217, 0.359, -0.207, 0.352, -0.142, 0.192, -0.061, -0.17 ,
120+
-0.343, 0.189, -0.221, 0.32 , -0.301, -0.1 , 0.005, 0.232,
121+
-0.344, 0.136, 0.252, 0.157, -0.13 , -0.244, 0.193, -0.034,
122+
-0.12 , -0.193, -0.102, 0.252, -0.185, -0.167, -0.575, 0.582,
123+
-0.426, 0.983, 0.212, 0.204, 0.03 , -0.276, -0.425, -0.158]
124+
k: 3
125+
visit_percentage: 1.0
126+
127+
- match: { hits.hits.0._id: "1" }
128+
- match: { hits.hits.1._id: "3" }
129+
- match: { hits.hits.2._id: "2" }
130+
---
109131
"Vector rescoring has same scoring as exact search for kNN section":
110132
- skip:
111133
features: "headers"

server/src/internalClusterTest/java/org/elasticsearch/index/mapper/vectors/DenseVectorFieldIndexTypeUpdateIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public void testDenseVectorMappingUpdate() throws Exception {
142142
for (int i = 0; i < queryVector.length; i++) {
143143
queryVector[i] = randomFloatBetween(-1, 1, true);
144144
}
145-
KnnVectorQueryBuilder queryBuilder = new KnnVectorQueryBuilder(VECTOR_FIELD, queryVector, null, null, null, null);
145+
KnnVectorQueryBuilder queryBuilder = new KnnVectorQueryBuilder(VECTOR_FIELD, queryVector, null, null, null, null, null);
146146
assertNoFailuresAndResponse(
147147
client().prepareSearch(INDEX_NAME).setQuery(queryBuilder).setTrackTotalHits(true).setSize(expectedDocs),
148148
response -> {

server/src/internalClusterTest/java/org/elasticsearch/index/store/DirectIOIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public void testDirectIOUsed() {
124124
indexVectors();
125125

126126
// do a search
127-
var knn = List.of(new KnnSearchBuilder("fooVector", new VectorData(null, new byte[64]), 10, 20, null, null));
127+
var knn = List.of(new KnnSearchBuilder("fooVector", new VectorData(null, new byte[64]), 10, 20, 10f, null, null));
128128
assertHitCount(prepareSearch("foo-vectors").setKnnSearch(knn), 10);
129129
mockLog.assertAllExpectationsMatched();
130130
}

server/src/internalClusterTest/java/org/elasticsearch/search/KnnSearchIT.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,29 +77,29 @@ public void testKnnSearchWithScroll() throws Exception {
7777
// test top level knn search
7878
{
7979
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
80-
sourceBuilder.knnSearch(List.of(new KnnSearchBuilder(VECTOR_FIELD, new float[] { 0, 0 }, k, 100, null, null)));
80+
sourceBuilder.knnSearch(List.of(new KnnSearchBuilder(VECTOR_FIELD, new float[] { 0, 0 }, k, 100, 10f, null, null)));
8181
executeScrollSearch(client, sourceBuilder, k);
8282
}
8383
// test top level knn search + another query
8484
{
8585
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
86-
sourceBuilder.knnSearch(List.of(new KnnSearchBuilder(VECTOR_FIELD, new float[] { 0, 0 }, k, 100, null, null)));
86+
sourceBuilder.knnSearch(List.of(new KnnSearchBuilder(VECTOR_FIELD, new float[] { 0, 0 }, k, 100, 10f, null, null)));
8787
sourceBuilder.query(QueryBuilders.existsQuery("category").boost(10));
8888
executeScrollSearch(client, sourceBuilder, k + 10);
8989
}
9090

9191
// test knn query
9292
{
9393
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
94-
sourceBuilder.query(new KnnVectorQueryBuilder(VECTOR_FIELD, new float[] { 0, 0 }, k, 100, null, null));
94+
sourceBuilder.query(new KnnVectorQueryBuilder(VECTOR_FIELD, new float[] { 0, 0 }, k, 100, 10f, null, null));
9595
executeScrollSearch(client, sourceBuilder, k * numShards);
9696
}
9797
// test knn query + another query
9898
{
9999
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
100100
sourceBuilder.query(
101101
QueryBuilders.boolQuery()
102-
.should(new KnnVectorQueryBuilder(VECTOR_FIELD, new float[] { 0, 0 }, k, 100, null, null))
102+
.should(new KnnVectorQueryBuilder(VECTOR_FIELD, new float[] { 0, 0 }, k, 100, 10f, null, null))
103103
.should(QueryBuilders.existsQuery("category").boost(10))
104104
);
105105
executeScrollSearch(client, sourceBuilder, k * numShards + 10);

0 commit comments

Comments
 (0)