Skip to content

Commit 3f5f258

Browse files
Mikep86jfreden
authored andcommitted
Clean up semantic text field mapper tests (elastic#127853)
1 parent 7e599b9 commit 3f5f258

File tree

3 files changed

+47
-30
lines changed

3 files changed

+47
-30
lines changed

test/framework/src/main/java/org/elasticsearch/index/mapper/MapperServiceTestCase.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@ protected final MapperService createMapperService(Settings settings, String mapp
210210
protected final MapperService createMapperService(IndexVersion indexVersion, Settings settings, XContentBuilder mappings)
211211
throws IOException {
212212
MapperService mapperService = createMapperService(indexVersion, settings, () -> true, mappings);
213-
merge(mapperService, mappings);
214213
return mapperService;
215214
}
216215

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/mapper/SemanticInferenceMetadataFieldsMapperTests.java

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,25 +37,44 @@ public void testIsEnabled() {
3737
assertFalse(InferenceMetadataFieldsMapper.isEnabled(settings));
3838

3939
settings = Settings.builder()
40-
.put(
41-
IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(),
42-
getRandomCompatibleIndexVersion(true, IndexVersionUtils.getPreviousVersion(IndexVersions.INFERENCE_METADATA_FIELDS))
43-
)
44-
.put(InferenceMetadataFieldsMapper.USE_LEGACY_SEMANTIC_TEXT_FORMAT.getKey(), false)
40+
.put(IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(), getRandomCompatibleIndexVersion(false))
41+
.put(InferenceMetadataFieldsMapper.USE_LEGACY_SEMANTIC_TEXT_FORMAT.getKey(), true)
4542
.build();
4643
assertFalse(InferenceMetadataFieldsMapper.isEnabled(settings));
4744

4845
settings = Settings.builder()
4946
.put(IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(), getRandomCompatibleIndexVersion(false))
50-
.put(InferenceMetadataFieldsMapper.USE_LEGACY_SEMANTIC_TEXT_FORMAT.getKey(), true)
47+
.put(InferenceMetadataFieldsMapper.USE_LEGACY_SEMANTIC_TEXT_FORMAT.getKey(), false)
48+
.build();
49+
assertTrue(InferenceMetadataFieldsMapper.isEnabled(settings));
50+
51+
// Test that index.mapping.semantic_text.use_legacy_format == false is ignored when the index version is too old to support the new
52+
// format
53+
settings = Settings.builder()
54+
.put(
55+
IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(),
56+
IndexVersionUtils.randomVersionBetween(
57+
random(),
58+
IndexVersions.SEMANTIC_TEXT_FIELD_TYPE,
59+
IndexVersionUtils.getPreviousVersion(IndexVersions.INFERENCE_METADATA_FIELDS_BACKPORT)
60+
) // 8.x version range prior to the introduction of the new format
61+
)
62+
.put(InferenceMetadataFieldsMapper.USE_LEGACY_SEMANTIC_TEXT_FORMAT.getKey(), false)
5163
.build();
5264
assertFalse(InferenceMetadataFieldsMapper.isEnabled(settings));
5365

5466
settings = Settings.builder()
55-
.put(IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(), getRandomCompatibleIndexVersion(false))
67+
.put(
68+
IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(),
69+
IndexVersionUtils.randomVersionBetween(
70+
random(),
71+
IndexVersions.UPGRADE_TO_LUCENE_10_0_0,
72+
IndexVersionUtils.getPreviousVersion(IndexVersions.INFERENCE_METADATA_FIELDS)
73+
) // 9.x version range prior to the introduction of the new format
74+
)
5675
.put(InferenceMetadataFieldsMapper.USE_LEGACY_SEMANTIC_TEXT_FORMAT.getKey(), false)
5776
.build();
58-
assertTrue(InferenceMetadataFieldsMapper.isEnabled(settings));
77+
assertFalse(InferenceMetadataFieldsMapper.isEnabled(settings));
5978
}
6079

6180
public void testIsEnabledByDefault() {
@@ -117,19 +136,27 @@ public MappedFieldType getMappedFieldType() {
117136
}
118137

119138
static IndexVersion getRandomCompatibleIndexVersion(boolean useLegacyFormat) {
120-
return getRandomCompatibleIndexVersion(useLegacyFormat, IndexVersion.current());
121-
}
122-
123-
static IndexVersion getRandomCompatibleIndexVersion(boolean useLegacyFormat, IndexVersion maxVersion) {
124139
if (useLegacyFormat) {
140+
// Randomly choose an index version compatible with the legacy semantic text format
125141
if (randomBoolean()) {
126-
return IndexVersionUtils.randomVersionBetween(random(), IndexVersions.UPGRADE_TO_LUCENE_10_0_0, maxVersion);
142+
// 9.x+ version
143+
return IndexVersionUtils.randomVersionBetween(random(), IndexVersions.UPGRADE_TO_LUCENE_10_0_0, IndexVersion.current());
127144
}
128-
return IndexVersionUtils.randomPreviousCompatibleVersion(random(), IndexVersions.INFERENCE_METADATA_FIELDS_BACKPORT);
145+
146+
// 8.x version
147+
return IndexVersionUtils.randomVersionBetween(
148+
random(),
149+
IndexVersions.SEMANTIC_TEXT_FIELD_TYPE,
150+
IndexVersionUtils.getPreviousVersion(IndexVersions.UPGRADE_TO_LUCENE_10_0_0)
151+
);
129152
} else {
153+
// Randomly choose an index version compatible with the new semantic text format
130154
if (randomBoolean()) {
131-
return IndexVersionUtils.randomVersionBetween(random(), IndexVersions.INFERENCE_METADATA_FIELDS, maxVersion);
155+
// 9.x+ version
156+
return IndexVersionUtils.randomVersionBetween(random(), IndexVersions.INFERENCE_METADATA_FIELDS, IndexVersion.current());
132157
}
158+
159+
// 8.x version
133160
return IndexVersionUtils.randomVersionBetween(
134161
random(),
135162
IndexVersions.INFERENCE_METADATA_FIELDS_BACKPORT,

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/mapper/SemanticTextFieldMapperTests.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -153,35 +153,27 @@ protected Supplier<ModelRegistry> getModelRegistry() {
153153

154154
private MapperService createMapperService(XContentBuilder mappings, boolean useLegacyFormat) throws IOException {
155155
IndexVersion indexVersion = SemanticInferenceMetadataFieldsMapperTests.getRandomCompatibleIndexVersion(useLegacyFormat);
156-
return createMapperService(mappings, useLegacyFormat, indexVersion, indexVersion, false);
156+
return createMapperService(mappings, useLegacyFormat, indexVersion, indexVersion);
157157
}
158158

159159
private MapperService createMapperService(XContentBuilder mappings, boolean useLegacyFormat, IndexVersion minIndexVersion)
160160
throws IOException {
161-
return createMapperService(mappings, useLegacyFormat, minIndexVersion, IndexVersion.current(), false);
161+
return createMapperService(mappings, useLegacyFormat, minIndexVersion, IndexVersion.current());
162162
}
163163

164164
private MapperService createMapperService(
165165
XContentBuilder mappings,
166166
boolean useLegacyFormat,
167167
IndexVersion minIndexVersion,
168-
IndexVersion maxIndexVersion,
169-
boolean propagateIndexVersion
168+
IndexVersion maxIndexVersion
170169
) throws IOException {
171170
validateIndexVersion(minIndexVersion, useLegacyFormat);
172171
IndexVersion indexVersion = IndexVersionUtils.randomVersionBetween(random(), minIndexVersion, maxIndexVersion);
173172
var settings = Settings.builder()
174173
.put(IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(), indexVersion)
175174
.put(InferenceMetadataFieldsMapper.USE_LEGACY_SEMANTIC_TEXT_FORMAT.getKey(), useLegacyFormat)
176175
.build();
177-
// TODO - This is added, because we discovered a bug where the index version was not being correctly propagated
178-
// in our mappings even though we were specifying the index version in settings. We will fix this in a followup and
179-
// remove the boolean flag accordingly.
180-
if (propagateIndexVersion) {
181-
return createMapperService(indexVersion, settings, mappings);
182-
} else {
183-
return createMapperService(settings, mappings);
184-
}
176+
return createMapperService(indexVersion, settings, mappings);
185177
}
186178

187179
private static void validateIndexVersion(IndexVersion indexVersion, boolean useLegacyFormat) {
@@ -1189,8 +1181,7 @@ public void testDefaultIndexOptions() throws IOException {
11891181
}),
11901182
useLegacyFormat,
11911183
IndexVersions.INFERENCE_METADATA_FIELDS,
1192-
IndexVersionUtils.getPreviousVersion(IndexVersions.SEMANTIC_TEXT_DEFAULTS_TO_BBQ),
1193-
true
1184+
IndexVersionUtils.getPreviousVersion(IndexVersions.SEMANTIC_TEXT_DEFAULTS_TO_BBQ)
11941185
);
11951186
assertSemanticTextField(mapperService, "field", true, null, defaultDenseVectorIndexOptions());
11961187

0 commit comments

Comments
 (0)