Skip to content

Commit eee1d29

Browse files
authored
[8.19] Backport Semantic Text Format Tests (#127967)
1 parent e9d540d commit eee1d29

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

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

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@
99

1010
import org.apache.lucene.index.FieldInfo;
1111
import org.apache.lucene.index.FieldInfos;
12+
import org.elasticsearch.cluster.metadata.IndexMetadata;
1213
import org.elasticsearch.common.settings.Settings;
1314
import org.elasticsearch.index.IndexVersion;
1415
import org.elasticsearch.index.IndexVersions;
16+
import org.elasticsearch.index.mapper.InferenceMetadataFieldsMapper;
1517
import org.elasticsearch.index.mapper.MappedFieldType;
1618
import org.elasticsearch.index.mapper.MapperServiceTestCase;
1719
import org.elasticsearch.plugins.Plugin;
@@ -27,6 +29,59 @@ protected Collection<? extends Plugin> getPlugins() {
2729
return Collections.singletonList(new InferencePlugin(Settings.EMPTY));
2830
}
2931

32+
public void testIsEnabled() {
33+
var settings = Settings.builder()
34+
.put(IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(), getRandomCompatibleIndexVersion(true))
35+
.put(InferenceMetadataFieldsMapper.USE_LEGACY_SEMANTIC_TEXT_FORMAT.getKey(), true)
36+
.build();
37+
assertFalse(InferenceMetadataFieldsMapper.isEnabled(settings));
38+
39+
settings = Settings.builder()
40+
.put(IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(), getRandomCompatibleIndexVersion(false))
41+
.put(InferenceMetadataFieldsMapper.USE_LEGACY_SEMANTIC_TEXT_FORMAT.getKey(), true)
42+
.build();
43+
assertFalse(InferenceMetadataFieldsMapper.isEnabled(settings));
44+
45+
settings = Settings.builder()
46+
.put(IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(), getRandomCompatibleIndexVersion(false))
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)
63+
.build();
64+
assertFalse(InferenceMetadataFieldsMapper.isEnabled(settings));
65+
}
66+
67+
public void testIsEnabledByDefault() {
68+
var settings = Settings.builder()
69+
.put(
70+
IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(),
71+
IndexVersionUtils.randomPreviousCompatibleVersion(random(), IndexVersions.INFERENCE_METADATA_FIELDS_BACKPORT)
72+
)
73+
.build();
74+
assertFalse(InferenceMetadataFieldsMapper.isEnabled(settings));
75+
76+
settings = Settings.builder()
77+
.put(
78+
IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(),
79+
IndexVersionUtils.randomVersionBetween(random(), IndexVersions.INFERENCE_METADATA_FIELDS_BACKPORT, IndexVersion.current())
80+
)
81+
.build();
82+
assertTrue(InferenceMetadataFieldsMapper.isEnabled(settings));
83+
}
84+
3085
@Override
3186
public void testFieldHasValue() {
3287
assertTrue(

0 commit comments

Comments
 (0)