Skip to content

Commit 671b8d6

Browse files
authored
Fix Semantic Text Rolling Upgrade Tests in 9.0 (elastic#127940)
1 parent 7ef113a commit 671b8d6

File tree

3 files changed

+31
-12
lines changed

3 files changed

+31
-12
lines changed

muted-tests.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,12 +257,6 @@ tests:
257257
- class: org.elasticsearch.xpack.esql.action.CrossClusterAsyncQueryIT
258258
method: testStopQueryLocal
259259
issue: https://github.com/elastic/elasticsearch/issues/125946
260-
- class: org.elasticsearch.upgrades.SemanticTextUpgradeIT
261-
method: testSemanticTextOperations {p0=true}
262-
issue: https://github.com/elastic/elasticsearch/issues/127937
263-
- class: org.elasticsearch.upgrades.SemanticTextUpgradeIT
264-
method: testSemanticTextOperations {p0=false}
265-
issue: https://github.com/elastic/elasticsearch/issues/127938
266260

267261
# Examples:
268262
#

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/model/TestModel.java

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
import java.io.IOException;
2929
import java.util.ArrayList;
30+
import java.util.Arrays;
3031
import java.util.HashMap;
3132
import java.util.List;
3233
import java.util.Map;
@@ -43,16 +44,35 @@ public static TestModel createRandomInstance() {
4344
}
4445

4546
public static TestModel createRandomInstance(TaskType taskType) {
46-
return createRandomInstance(taskType, null);
47+
return createRandomInstance(taskType, null, null);
4748
}
4849

49-
public static TestModel createRandomInstance(TaskType taskType, List<SimilarityMeasure> excludedSimilarities) {
50+
public static TestModel createRandomInstance(
51+
TaskType taskType,
52+
List<DenseVectorFieldMapper.ElementType> excludedElementTypes,
53+
List<SimilarityMeasure> excludedSimilarities
54+
) {
5055
// Use a max dimension count that has a reasonable probability of being compatible with BBQ
51-
return createRandomInstance(taskType, excludedSimilarities, BBQ_MIN_DIMS * 2);
56+
return createRandomInstance(taskType, excludedElementTypes, excludedSimilarities, BBQ_MIN_DIMS * 2);
5257
}
5358

54-
public static TestModel createRandomInstance(TaskType taskType, List<SimilarityMeasure> excludedSimilarities, int maxDimensions) {
55-
var elementType = taskType == TaskType.TEXT_EMBEDDING ? randomFrom(DenseVectorFieldMapper.ElementType.values()) : null;
59+
public static TestModel createRandomInstance(
60+
TaskType taskType,
61+
List<DenseVectorFieldMapper.ElementType> excludedElementTypes,
62+
List<SimilarityMeasure> excludedSimilarities,
63+
int maxDimensions
64+
) {
65+
List<DenseVectorFieldMapper.ElementType> supportedElementTypes = new ArrayList<>(
66+
Arrays.asList(DenseVectorFieldMapper.ElementType.values())
67+
);
68+
if (excludedElementTypes != null) {
69+
supportedElementTypes.removeAll(excludedElementTypes);
70+
if (supportedElementTypes.isEmpty()) {
71+
throw new IllegalArgumentException("No supported element types with excluded element types " + excludedElementTypes);
72+
}
73+
}
74+
75+
var elementType = taskType == TaskType.TEXT_EMBEDDING ? randomFrom(supportedElementTypes) : null;
5676
var dimensions = taskType == TaskType.TEXT_EMBEDDING
5777
? DenseVectorFieldMapperTestUtils.randomCompatibleDimensions(elementType, maxDimensions)
5878
: null;

x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/SemanticTextUpgradeIT.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,13 @@ public class SemanticTextUpgradeIT extends AbstractUpgradeTestCase {
7070
@BeforeClass
7171
public static void beforeClass() {
7272
SPARSE_MODEL = TestModel.createRandomInstance(TaskType.SPARSE_EMBEDDING);
73+
// Exclude bit vectors because semantic text does not fully support them
7374
// Exclude dot product because we are not producing unit length vectors
74-
DENSE_MODEL = TestModel.createRandomInstance(TaskType.TEXT_EMBEDDING, List.of(SimilarityMeasure.DOT_PRODUCT));
75+
DENSE_MODEL = TestModel.createRandomInstance(
76+
TaskType.TEXT_EMBEDDING,
77+
List.of(DenseVectorFieldMapper.ElementType.BIT),
78+
List.of(SimilarityMeasure.DOT_PRODUCT)
79+
);
7580
}
7681

7782
public SemanticTextUpgradeIT(boolean useLegacyFormat) {

0 commit comments

Comments
 (0)