Skip to content

Commit e41022e

Browse files
committed
Fix compile errors
1 parent 8ea0167 commit e41022e

File tree

13 files changed

+125
-39
lines changed

13 files changed

+125
-39
lines changed

server/src/test/java/org/elasticsearch/cluster/metadata/IndexMetadataTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,8 @@ private static InferenceFieldMetadata randomInferenceFieldMetadata(String name)
728728
randomIdentifier(),
729729
randomIdentifier(),
730730
randomSet(1, 5, ESTestCase::randomIdentifier).toArray(String[]::new),
731-
InferenceFieldMetadataTests.generateRandomChunkingSettings()
731+
InferenceFieldMetadataTests.generateRandomChunkingSettings(),
732+
InferenceFieldMetadataTests.randomSemanticTextIndexOptions()
732733
);
733734
}
734735

server/src/test/java/org/elasticsearch/cluster/metadata/InferenceFieldMetadataTests.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,19 @@
1111

1212
import org.elasticsearch.common.io.stream.BytesStreamOutput;
1313
import org.elasticsearch.common.io.stream.StreamInput;
14+
import org.elasticsearch.index.IndexVersion;
15+
import org.elasticsearch.index.IndexVersions;
1416
import org.elasticsearch.test.AbstractXContentTestCase;
17+
import org.elasticsearch.test.index.IndexVersionUtils;
1518
import org.elasticsearch.xcontent.XContentParser;
1619

1720
import java.io.IOException;
1821
import java.util.Map;
1922
import java.util.function.Predicate;
2023

2124
import static org.elasticsearch.cluster.metadata.InferenceFieldMetadata.CHUNKING_SETTINGS_FIELD;
25+
import static org.elasticsearch.index.mapper.vectors.DenseVectorFieldMapper.parseIndexOptions;
26+
import static org.elasticsearch.index.mapper.vectors.DenseVectorFieldTypeTests.randomIndexOptionsAll;
2227
import static org.hamcrest.Matchers.equalTo;
2328

2429
public class InferenceFieldMetadataTests extends AbstractXContentTestCase<InferenceFieldMetadata> {
@@ -68,7 +73,8 @@ private static InferenceFieldMetadata createTestItem() {
6873
String searchInferenceId = randomIdentifier();
6974
String[] inputFields = generateRandomStringArray(5, 10, false, false);
7075
Map<String, Object> chunkingSettings = generateRandomChunkingSettings();
71-
return new InferenceFieldMetadata(name, inferenceId, searchInferenceId, inputFields, chunkingSettings);
76+
SemanticTextIndexOptions indexOptions = randomSemanticTextIndexOptions();
77+
return new InferenceFieldMetadata(name, inferenceId, searchInferenceId, inputFields, chunkingSettings, indexOptions);
7278
}
7379

7480
public static Map<String, Object> generateRandomChunkingSettings() {
@@ -78,6 +84,12 @@ public static Map<String, Object> generateRandomChunkingSettings() {
7884
return randomBoolean() ? generateRandomWordBoundaryChunkingSettings() : generateRandomSentenceBoundaryChunkingSettings();
7985
}
8086

87+
public static SemanticTextIndexOptions randomSemanticTextIndexOptions() {
88+
return randomBoolean()
89+
? null
90+
: new SemanticTextIndexOptions(SemanticTextIndexOptions.SupportedIndexOptions.DENSE_VECTOR, randomIndexOptionsAll());
91+
}
92+
8193
private static Map<String, Object> generateRandomWordBoundaryChunkingSettings() {
8294
return Map.of("strategy", "word_boundary", "max_chunk_size", randomIntBetween(20, 100), "overlap", randomIntBetween(1, 50));
8395
}
@@ -96,16 +108,19 @@ private static Map<String, Object> generateRandomSentenceBoundaryChunkingSetting
96108
public void testNullCtorArgsThrowException() {
97109
assertThrows(
98110
NullPointerException.class,
99-
() -> new InferenceFieldMetadata(null, "inferenceId", "searchInferenceId", new String[0], Map.of())
111+
() -> new InferenceFieldMetadata(null, "inferenceId", "searchInferenceId", new String[0], Map.of(), null)
112+
);
113+
assertThrows(
114+
NullPointerException.class,
115+
() -> new InferenceFieldMetadata("name", null, "searchInferenceId", new String[0], Map.of(), null)
100116
);
101117
assertThrows(
102118
NullPointerException.class,
103-
() -> new InferenceFieldMetadata("name", null, "searchInferenceId", new String[0], Map.of())
119+
() -> new InferenceFieldMetadata("name", "inferenceId", null, new String[0], Map.of(), null)
104120
);
105-
assertThrows(NullPointerException.class, () -> new InferenceFieldMetadata("name", "inferenceId", null, new String[0], Map.of()));
106121
assertThrows(
107122
NullPointerException.class,
108-
() -> new InferenceFieldMetadata("name", "inferenceId", "searchInferenceId", null, Map.of())
123+
() -> new InferenceFieldMetadata("name", "inferenceId", "searchInferenceId", null, Map.of(), null)
109124
);
110125
}
111126
}

server/src/test/java/org/elasticsearch/index/mapper/MappingLookupInferenceFieldMapperTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ public InferenceFieldMetadata getMetadata(Set<String> sourcePaths) {
108108
INFERENCE_ID,
109109
SEARCH_INFERENCE_ID,
110110
sourcePaths.toArray(new String[0]),
111-
InferenceFieldMetadataTests.generateRandomChunkingSettings()
111+
InferenceFieldMetadataTests.generateRandomChunkingSettings(),
112+
InferenceFieldMetadataTests.randomSemanticTextIndexOptions()
112113
);
113114
}
114115

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/mapper/SemanticTextField.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import org.elasticsearch.core.Nullable;
1717
import org.elasticsearch.index.IndexVersion;
1818
import org.elasticsearch.index.IndexVersions;
19-
import org.elasticsearch.index.mapper.MappingParserContext;
2019
import org.elasticsearch.inference.ChunkedInference;
2120
import org.elasticsearch.inference.ChunkingSettings;
2221
import org.elasticsearch.inference.MinimalServiceSettings;
@@ -109,7 +108,7 @@ public static String getOffsetsFieldName(String fieldName) {
109108
return getChunksFieldName(fieldName) + "." + CHUNKED_OFFSET_FIELD;
110109
}
111110

112-
record ParserContext(boolean useLegacyFormat, String fieldName, XContentType xContentType) {}
111+
record ParserContext(boolean useLegacyFormat, String fieldName, IndexVersion indexVersion, XContentType xContentType) {}
113112

114113
static SemanticTextField parse(XContentParser parser, ParserContext context) throws IOException {
115114
return SEMANTIC_TEXT_FIELD_PARSER.parse(parser, context);

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/mapper/SemanticTextFieldMapper.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,12 @@ SemanticTextField parseSemanticTextField(DocumentParserContext context) throws I
484484
context.path().setWithinLeafObject(true);
485485
return SemanticTextField.parse(
486486
context.parser(),
487-
new SemanticTextField.ParserContext(fieldType().useLegacyFormat, fullPath(), context.parser().contentType())
487+
new SemanticTextField.ParserContext(
488+
fieldType().useLegacyFormat,
489+
fullPath(),
490+
context.indexSettings().getIndexVersionCreated(),
491+
context.parser().contentType()
492+
)
488493
);
489494
} finally {
490495
context.path().setWithinLeafObject(isWithinLeaf);

x-pack/plugin/inference/src/test/java/org/elasticsearch/index/query/SemanticKnnVectorQueryRewriteInterceptorTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public void cleanup() {
5656
public void testKnnQueryWithVectorBuilderIsInterceptedAndRewritten() throws IOException {
5757
Map<String, InferenceFieldMetadata> inferenceFields = Map.of(
5858
FIELD_NAME,
59-
new InferenceFieldMetadata(index.getName(), INFERENCE_ID, new String[] { FIELD_NAME }, null)
59+
new InferenceFieldMetadata(index.getName(), INFERENCE_ID, new String[] { FIELD_NAME }, null, null)
6060
);
6161
QueryRewriteContext context = createQueryRewriteContext(inferenceFields);
6262
QueryVectorBuilder queryVectorBuilder = new TextEmbeddingQueryVectorBuilder(INFERENCE_ID, QUERY);
@@ -67,7 +67,7 @@ public void testKnnQueryWithVectorBuilderIsInterceptedAndRewritten() throws IOEx
6767
public void testKnnWithQueryBuilderWithoutInferenceIdIsInterceptedAndRewritten() throws IOException {
6868
Map<String, InferenceFieldMetadata> inferenceFields = Map.of(
6969
FIELD_NAME,
70-
new InferenceFieldMetadata(index.getName(), INFERENCE_ID, new String[] { FIELD_NAME }, null)
70+
new InferenceFieldMetadata(index.getName(), INFERENCE_ID, new String[] { FIELD_NAME }, null, null)
7171
);
7272
QueryRewriteContext context = createQueryRewriteContext(inferenceFields);
7373
QueryVectorBuilder queryVectorBuilder = new TextEmbeddingQueryVectorBuilder(null, QUERY);

x-pack/plugin/inference/src/test/java/org/elasticsearch/index/query/SemanticMatchQueryRewriteInterceptorTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public void cleanup() {
5252
public void testMatchQueryOnInferenceFieldIsInterceptedAndRewrittenToSemanticQuery() throws IOException {
5353
Map<String, InferenceFieldMetadata> inferenceFields = Map.of(
5454
FIELD_NAME,
55-
new InferenceFieldMetadata(index.getName(), "inferenceId", new String[] { FIELD_NAME }, null)
55+
new InferenceFieldMetadata(index.getName(), "inferenceId", new String[] { FIELD_NAME }, null, null)
5656
);
5757
QueryRewriteContext context = createQueryRewriteContext(inferenceFields);
5858
QueryBuilder original = createTestQueryBuilder();

x-pack/plugin/inference/src/test/java/org/elasticsearch/index/query/SemanticSparseVectorQueryRewriteInterceptorTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public void cleanup() {
5454
public void testSparseVectorQueryOnInferenceFieldIsInterceptedAndRewritten() throws IOException {
5555
Map<String, InferenceFieldMetadata> inferenceFields = Map.of(
5656
FIELD_NAME,
57-
new InferenceFieldMetadata(index.getName(), "inferenceId", new String[] { FIELD_NAME }, null)
57+
new InferenceFieldMetadata(index.getName(), "inferenceId", new String[] { FIELD_NAME }, null, null)
5858
);
5959
QueryRewriteContext context = createQueryRewriteContext(inferenceFields);
6060
QueryBuilder original = new SparseVectorQueryBuilder(FIELD_NAME, INFERENCE_ID, QUERY);
@@ -78,7 +78,7 @@ public void testSparseVectorQueryOnInferenceFieldIsInterceptedAndRewritten() thr
7878
public void testSparseVectorQueryOnInferenceFieldWithoutInferenceIdIsInterceptedAndRewritten() throws IOException {
7979
Map<String, InferenceFieldMetadata> inferenceFields = Map.of(
8080
FIELD_NAME,
81-
new InferenceFieldMetadata(index.getName(), "inferenceId", new String[] { FIELD_NAME }, null)
81+
new InferenceFieldMetadata(index.getName(), "inferenceId", new String[] { FIELD_NAME }, null, null)
8282
);
8383
QueryRewriteContext context = createQueryRewriteContext(inferenceFields);
8484
QueryBuilder original = new SparseVectorQueryBuilder(FIELD_NAME, null, QUERY);

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/action/filter/ShardBulkInferenceActionFilterTests.java

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public void testFilterNoop() throws Exception {
159159
new BulkItemRequest[0]
160160
);
161161
request.setInferenceFieldMap(
162-
Map.of("foo", new InferenceFieldMetadata("foo", "bar", "baz", generateRandomStringArray(5, 10, false, false), null))
162+
Map.of("foo", new InferenceFieldMetadata("foo", "bar", "baz", generateRandomStringArray(5, 10, false, false), null, null))
163163
);
164164
filter.apply(task, TransportShardBulkAction.ACTION_NAME, request, actionListener, actionFilterChain);
165165
awaitLatch(chainExecuted, 10, TimeUnit.SECONDS);
@@ -192,7 +192,7 @@ public void testLicenseInvalidForInference() throws InterruptedException {
192192

193193
Map<String, InferenceFieldMetadata> inferenceFieldMap = Map.of(
194194
"obj.field1",
195-
new InferenceFieldMetadata("obj.field1", model.getInferenceEntityId(), new String[] { "obj.field1" }, null)
195+
new InferenceFieldMetadata("obj.field1", model.getInferenceEntityId(), new String[] { "obj.field1" }, null, null)
196196
);
197197
BulkItemRequest[] items = new BulkItemRequest[1];
198198
items[0] = new BulkItemRequest(0, new IndexRequest("test").source("obj.field1", "Test"));
@@ -233,11 +233,11 @@ public void testInferenceNotFound() throws Exception {
233233

234234
Map<String, InferenceFieldMetadata> inferenceFieldMap = Map.of(
235235
"field1",
236-
new InferenceFieldMetadata("field1", model.getInferenceEntityId(), new String[] { "field1" }, null),
236+
new InferenceFieldMetadata("field1", model.getInferenceEntityId(), new String[] { "field1" }, null, null),
237237
"field2",
238-
new InferenceFieldMetadata("field2", "inference_0", new String[] { "field2" }, null),
238+
new InferenceFieldMetadata("field2", "inference_0", new String[] { "field2" }, null, null),
239239
"field3",
240-
new InferenceFieldMetadata("field3", "inference_0", new String[] { "field3" }, null)
240+
new InferenceFieldMetadata("field3", "inference_0", new String[] { "field3" }, null, null)
241241
);
242242
BulkItemRequest[] items = new BulkItemRequest[10];
243243
for (int i = 0; i < items.length; i++) {
@@ -306,7 +306,7 @@ public void testItemFailures() throws Exception {
306306

307307
Map<String, InferenceFieldMetadata> inferenceFieldMap = Map.of(
308308
"field1",
309-
new InferenceFieldMetadata("field1", model.getInferenceEntityId(), new String[] { "field1" }, null)
309+
new InferenceFieldMetadata("field1", model.getInferenceEntityId(), new String[] { "field1" }, null, null)
310310
);
311311
BulkItemRequest[] items = new BulkItemRequest[3];
312312
items[0] = new BulkItemRequest(0, new IndexRequest("index").source("field1", "I am a failure"));
@@ -375,7 +375,7 @@ public void testExplicitNull() throws Exception {
375375

376376
Map<String, InferenceFieldMetadata> inferenceFieldMap = Map.of(
377377
"obj.field1",
378-
new InferenceFieldMetadata("obj.field1", model.getInferenceEntityId(), new String[] { "obj.field1" }, null)
378+
new InferenceFieldMetadata("obj.field1", model.getInferenceEntityId(), new String[] { "obj.field1" }, null, null)
379379
);
380380
Map<String, Object> sourceWithNull = new HashMap<>();
381381
sourceWithNull.put("field1", null);
@@ -432,7 +432,13 @@ public void testHandleEmptyInput() throws Exception {
432432
Task task = mock(Task.class);
433433
Map<String, InferenceFieldMetadata> inferenceFieldMap = Map.of(
434434
"semantic_text_field",
435-
new InferenceFieldMetadata("semantic_text_field", model.getInferenceEntityId(), new String[] { "semantic_text_field" }, null)
435+
new InferenceFieldMetadata(
436+
"semantic_text_field",
437+
model.getInferenceEntityId(),
438+
new String[] { "semantic_text_field" },
439+
null,
440+
null
441+
)
436442
);
437443

438444
BulkItemRequest[] items = new BulkItemRequest[3];
@@ -459,7 +465,7 @@ public void testManyRandomDocs() throws Exception {
459465
for (int i = 0; i < numInferenceFields; i++) {
460466
String field = randomAlphaOfLengthBetween(5, 10);
461467
String inferenceId = randomFrom(inferenceModelMap.keySet());
462-
inferenceFieldMap.put(field, new InferenceFieldMetadata(field, inferenceId, new String[] { field }, null));
468+
inferenceFieldMap.put(field, new InferenceFieldMetadata(field, inferenceId, new String[] { field }, null, null));
463469
}
464470

465471
int numRequests = atLeast(100);
@@ -538,7 +544,9 @@ public void testIndexingPressure() throws Exception {
538544
addSemanticTextInferenceResults(
539545
useLegacyFormat,
540546
doc5Source,
541-
List.of(randomSemanticText(useLegacyFormat, "sparse_field", sparseModel, null, List.of("a test value"), XContentType.JSON))
547+
List.of(
548+
randomSemanticText(useLegacyFormat, "sparse_field", sparseModel, null, null, List.of("a test value"), XContentType.JSON)
549+
)
542550
);
543551
doc5Source.endObject();
544552
}
@@ -587,9 +595,9 @@ public void testIndexingPressure() throws Exception {
587595

588596
Map<String, InferenceFieldMetadata> inferenceFieldMap = Map.of(
589597
"sparse_field",
590-
new InferenceFieldMetadata("sparse_field", sparseModel.getInferenceEntityId(), new String[] { "sparse_field" }, null),
598+
new InferenceFieldMetadata("sparse_field", sparseModel.getInferenceEntityId(), new String[] { "sparse_field" }, null, null),
591599
"dense_field",
592-
new InferenceFieldMetadata("dense_field", denseModel.getInferenceEntityId(), new String[] { "dense_field" }, null)
600+
new InferenceFieldMetadata("dense_field", denseModel.getInferenceEntityId(), new String[] { "dense_field" }, null, null)
593601
);
594602

595603
BulkItemRequest[] items = new BulkItemRequest[10];
@@ -677,7 +685,7 @@ public void testIndexingPressureTripsOnInferenceRequestGeneration() throws Excep
677685

678686
Map<String, InferenceFieldMetadata> inferenceFieldMap = Map.of(
679687
"sparse_field",
680-
new InferenceFieldMetadata("sparse_field", sparseModel.getInferenceEntityId(), new String[] { "sparse_field" }, null)
688+
new InferenceFieldMetadata("sparse_field", sparseModel.getInferenceEntityId(), new String[] { "sparse_field" }, null, null)
681689
);
682690

683691
BulkItemRequest[] items = new BulkItemRequest[3];
@@ -758,7 +766,7 @@ public void testIndexingPressureTripsOnInferenceResponseHandling() throws Except
758766

759767
Map<String, InferenceFieldMetadata> inferenceFieldMap = Map.of(
760768
"sparse_field",
761-
new InferenceFieldMetadata("sparse_field", sparseModel.getInferenceEntityId(), new String[] { "sparse_field" }, null)
769+
new InferenceFieldMetadata("sparse_field", sparseModel.getInferenceEntityId(), new String[] { "sparse_field" }, null, null)
762770
);
763771

764772
BulkItemRequest[] items = new BulkItemRequest[3];
@@ -794,6 +802,7 @@ public void testIndexingPressurePartialFailure() throws Exception {
794802
"sparse_field",
795803
sparseModel,
796804
null,
805+
null,
797806
inputs,
798807
inference,
799808
XContentType.JSON
@@ -868,7 +877,7 @@ public void testIndexingPressurePartialFailure() throws Exception {
868877

869878
Map<String, InferenceFieldMetadata> inferenceFieldMap = Map.of(
870879
"sparse_field",
871-
new InferenceFieldMetadata("sparse_field", sparseModel.getInferenceEntityId(), new String[] { "sparse_field" }, null)
880+
new InferenceFieldMetadata("sparse_field", sparseModel.getInferenceEntityId(), new String[] { "sparse_field" }, null, null)
872881
);
873882

874883
BulkItemRequest[] items = new BulkItemRequest[4];
@@ -1032,13 +1041,14 @@ private static BulkItemRequest[] randomBulkItemRequest(
10321041
field,
10331042
model,
10341043
null,
1044+
null,
10351045
List.of(inputText),
10361046
results,
10371047
requestContentType
10381048
);
10391049
} else {
10401050
Map<String, List<String>> inputTextMap = Map.of(field, List.of(inputText));
1041-
semanticTextField = randomSemanticText(useLegacyFormat, field, model, null, List.of(inputText), requestContentType);
1051+
semanticTextField = randomSemanticText(useLegacyFormat, field, model, null, null, List.of(inputText), requestContentType);
10421052
model.putResult(inputText, toChunkedResult(useLegacyFormat, inputTextMap, semanticTextField));
10431053
}
10441054

0 commit comments

Comments
 (0)