Skip to content

Commit 5e507fa

Browse files
committed
Fix max dim value for dense vector.
Closes #2911 (cherry picked from commit e997b39) (cherry picked from commit ba9edf8)
1 parent a355537 commit 5e507fa

File tree

2 files changed

+21
-14
lines changed

2 files changed

+21
-14
lines changed

src/main/java/org/springframework/data/elasticsearch/core/index/MappingParameters.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,8 @@ private MappingParameters(Field field) {
169169
positiveScoreImpact = field.positiveScoreImpact();
170170
dims = field.dims();
171171
if (type == FieldType.Dense_Vector) {
172-
Assert.isTrue(dims >= 1 && dims <= 2048,
173-
"Invalid required parameter! Dense_Vector value \"dims\" must be between 1 and 2048.");
172+
Assert.isTrue(dims >= 1 && dims <= 4096,
173+
"Invalid required parameter! Dense_Vector value \"dims\" must be between 1 and 4096.");
174174
}
175175
Assert.isTrue(field.enabled() || type == FieldType.Object, "enabled false is only allowed for field type object");
176176
enabled = field.enabled();
@@ -212,8 +212,8 @@ private MappingParameters(InnerField field) {
212212
positiveScoreImpact = field.positiveScoreImpact();
213213
dims = field.dims();
214214
if (type == FieldType.Dense_Vector) {
215-
Assert.isTrue(dims >= 1 && dims <= 2048,
216-
"Invalid required parameter! Dense_Vector value \"dims\" must be between 1 and 2048.");
215+
Assert.isTrue(dims >= 1 && dims <= 4096,
216+
"Invalid required parameter! Dense_Vector value \"dims\" must be between 1 and 4096.");
217217
}
218218
enabled = true;
219219
eagerGlobalOrdinals = field.eagerGlobalOrdinals();

src/test/java/org/springframework/data/elasticsearch/core/index/MappingParametersTest.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ void shouldAllowEnabledFalseOnlyOnObjectFields() {
7070
}
7171

7272
@Test // #1700
73-
@DisplayName("should not allow dims length greater than 2048 for dense_vector type")
74-
void shouldNotAllowDimsLengthGreaterThan2048ForDenseVectorType() {
73+
@DisplayName("should not allow dims length greater than 4096 for dense_vector type")
74+
void shouldNotAllowDimsLengthGreaterThan4096ForDenseVectorType() {
7575
ElasticsearchPersistentEntity<?> failEntity = elasticsearchConverter.get().getMappingContext()
7676
.getRequiredPersistentEntity(DenseVectorInvalidDimsClass.class);
7777
Annotation annotation = failEntity.getRequiredPersistentProperty("dense_vector").findAnnotation(Field.class);
@@ -90,21 +90,28 @@ void shouldRequireDimsParameterForDenseVectorType() {
9090
}
9191

9292
static class AnnotatedClass {
93-
@Nullable @Field private String field;
94-
@Nullable @MultiField(mainField = @Field,
93+
@Nullable
94+
@Field private String field;
95+
@Nullable
96+
@MultiField(mainField = @Field,
9597
otherFields = { @InnerField(suffix = "test", type = FieldType.Text) }) private String mainField;
96-
@Nullable @Field(type = FieldType.Text, docValues = false) private String docValuesText;
97-
@Nullable @Field(type = FieldType.Nested, docValues = false) private String docValuesNested;
98-
@Nullable @Field(type = Object, enabled = true) private String enabledObject;
99-
@Nullable @Field(type = Object, enabled = false) private String disabledObject;
98+
@Nullable
99+
@Field(type = FieldType.Text, docValues = false) private String docValuesText;
100+
@Nullable
101+
@Field(type = FieldType.Nested, docValues = false) private String docValuesNested;
102+
@Nullable
103+
@Field(type = Object, enabled = true) private String enabledObject;
104+
@Nullable
105+
@Field(type = Object, enabled = false) private String disabledObject;
100106
}
101107

102108
static class InvalidEnabledFieldClass {
103-
@Nullable @Field(type = FieldType.Text, enabled = false) private String disabledObject;
109+
@Nullable
110+
@Field(type = FieldType.Text, enabled = false) private String disabledObject;
104111
}
105112

106113
static class DenseVectorInvalidDimsClass {
107-
@Field(type = Dense_Vector, dims = 2049) private float[] dense_vector;
114+
@Field(type = Dense_Vector, dims = 4097) private float[] dense_vector;
108115
}
109116

110117
static class DenseVectorMissingDimsClass {

0 commit comments

Comments
 (0)