Skip to content

Commit 31678a3

Browse files
authored
Rename multi-dense vector to rank vectors (#118183)
renames `multi_dense_vector` field mapper and such to `rank_vectors` to better describe its restricted usage.
1 parent dcae87d commit 31678a3

File tree

28 files changed

+295
-379
lines changed

28 files changed

+295
-379
lines changed

modules/lang-painless/src/main/resources/org/elasticsearch/painless/org.elasticsearch.script.fields.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ class org.elasticsearch.script.field.SeqNoDocValuesField @dynamic_type {
132132
class org.elasticsearch.script.field.VersionDocValuesField @dynamic_type {
133133
}
134134

135-
class org.elasticsearch.script.field.vectors.MultiDenseVector {
136-
MultiDenseVector EMPTY
135+
class org.elasticsearch.script.field.vectors.RankVectors {
136+
RankVectors EMPTY
137137
float[] getMagnitudes()
138138

139139
Iterator getVectors()
@@ -142,9 +142,9 @@ class org.elasticsearch.script.field.vectors.MultiDenseVector {
142142
int size()
143143
}
144144

145-
class org.elasticsearch.script.field.vectors.MultiDenseVectorDocValuesField {
146-
MultiDenseVector get()
147-
MultiDenseVector get(MultiDenseVector)
145+
class org.elasticsearch.script.field.vectors.RankVectorsDocValuesField {
146+
RankVectors get()
147+
RankVectors get(RankVectors)
148148
}
149149

150150
class org.elasticsearch.script.field.vectors.DenseVector {

modules/lang-painless/src/main/resources/org/elasticsearch/painless/org.elasticsearch.script.score.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ static_import {
5050
double cosineSimilarity(org.elasticsearch.script.ScoreScript, Object, String) bound_to org.elasticsearch.script.VectorScoreScriptUtils$CosineSimilarity
5151
double dotProduct(org.elasticsearch.script.ScoreScript, Object, String) bound_to org.elasticsearch.script.VectorScoreScriptUtils$DotProduct
5252
double hamming(org.elasticsearch.script.ScoreScript, Object, String) bound_to org.elasticsearch.script.VectorScoreScriptUtils$Hamming
53-
double maxSimDotProduct(org.elasticsearch.script.ScoreScript, Object, String) bound_to org.elasticsearch.script.MultiVectorScoreScriptUtils$MaxSimDotProduct
54-
double maxSimInvHamming(org.elasticsearch.script.ScoreScript, Object, String) bound_to org.elasticsearch.script.MultiVectorScoreScriptUtils$MaxSimInvHamming
53+
double maxSimDotProduct(org.elasticsearch.script.ScoreScript, Object, String) bound_to org.elasticsearch.script.RankVectorsScoreScriptUtils$MaxSimDotProduct
54+
double maxSimInvHamming(org.elasticsearch.script.ScoreScript, Object, String) bound_to org.elasticsearch.script.RankVectorsScoreScriptUtils$MaxSimInvHamming
5555
}
5656

modules/lang-painless/src/main/resources/org/elasticsearch/painless/org.elasticsearch.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ class org.elasticsearch.index.mapper.vectors.DenseVectorScriptDocValues {
123123
float getMagnitude()
124124
}
125125

126-
class org.elasticsearch.index.mapper.vectors.MultiDenseVectorScriptDocValues {
126+
class org.elasticsearch.index.mapper.vectors.RankVectorsScriptDocValues {
127127
Iterator getVectorValues()
128128
float[] getMagnitudes()
129129
}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ setup:
33
capabilities:
44
- method: POST
55
path: /_search
6-
capabilities: [ multi_dense_vector_script_max_sim_with_bugfix ]
6+
capabilities: [ rank_vectors_script_max_sim_with_bugfix ]
77
test_runner_features: capabilities
8-
reason: "Support for multi dense vector max-sim functions capability required"
8+
reason: "Support for rank vectors max-sim functions capability required"
99
- skip:
1010
features: headers
1111

@@ -18,14 +18,14 @@ setup:
1818
mappings:
1919
properties:
2020
vector:
21-
type: multi_dense_vector
21+
type: rank_vectors
2222
dims: 5
2323
byte_vector:
24-
type: multi_dense_vector
24+
type: rank_vectors
2525
dims: 5
2626
element_type: byte
2727
bit_vector:
28-
type: multi_dense_vector
28+
type: rank_vectors
2929
dims: 40
3030
element_type: bit
3131
- do:
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ setup:
33
capabilities:
44
- method: POST
55
path: /_search
6-
capabilities: [ multi_dense_vector_script_access ]
6+
capabilities: [ rank_vectors_script_access ]
77
test_runner_features: capabilities
8-
reason: "Support for multi dense vector field script access capability required"
8+
reason: "Support for rank vector field script access capability required"
99
- skip:
1010
features: headers
1111

@@ -18,14 +18,14 @@ setup:
1818
mappings:
1919
properties:
2020
vector:
21-
type: multi_dense_vector
21+
type: rank_vectors
2222
dims: 5
2323
byte_vector:
24-
type: multi_dense_vector
24+
type: rank_vectors
2525
dims: 5
2626
element_type: byte
2727
bit_vector:
28-
type: multi_dense_vector
28+
type: rank_vectors
2929
dims: 40
3030
element_type: bit
3131
- do:
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ setup:
33
capabilities:
44
- method: POST
55
path: /_search
6-
capabilities: [ multi_dense_vector_field_mapper ]
6+
capabilities: [ rank_vectors_field_mapper ]
77
test_runner_features: capabilities
8-
reason: "Support for multi dense vector field mapper capability required"
8+
reason: "Support for rank vectors field mapper capability required"
99
---
1010
"Test create multi-vector field":
1111
- do:
@@ -15,7 +15,7 @@ setup:
1515
mappings:
1616
properties:
1717
vector1:
18-
type: multi_dense_vector
18+
type: rank_vectors
1919
dims: 3
2020
- do:
2121
index:
@@ -48,7 +48,7 @@ setup:
4848
name:
4949
type: keyword
5050
vector1:
51-
type: multi_dense_vector
51+
type: rank_vectors
5252
- do:
5353
index:
5454
index: test
@@ -88,7 +88,7 @@ setup:
8888
mappings:
8989
properties:
9090
vector1:
91-
type: multi_dense_vector
91+
type: rank_vectors
9292
- do:
9393
catch: bad_request
9494
index:
@@ -105,7 +105,7 @@ setup:
105105
mappings:
106106
properties:
107107
vector1:
108-
type: multi_dense_vector
108+
type: rank_vectors
109109
dims: 3
110110
- do:
111111
catch: bad_request
@@ -123,7 +123,7 @@ setup:
123123
mappings:
124124
properties:
125125
vector1:
126-
type: multi_dense_vector
126+
type: rank_vectors
127127
dims: 3
128128
- do:
129129
catch: bad_request
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@
1515
import org.elasticsearch.index.fielddata.LeafFieldData;
1616
import org.elasticsearch.index.fielddata.SortedBinaryDocValues;
1717
import org.elasticsearch.script.field.DocValuesScriptFieldFactory;
18-
import org.elasticsearch.script.field.vectors.BitMultiDenseVectorDocValuesField;
19-
import org.elasticsearch.script.field.vectors.ByteMultiDenseVectorDocValuesField;
20-
import org.elasticsearch.script.field.vectors.FloatMultiDenseVectorDocValuesField;
18+
import org.elasticsearch.script.field.vectors.BitRankVectorsDocValuesField;
19+
import org.elasticsearch.script.field.vectors.ByteRankVectorsDocValuesField;
20+
import org.elasticsearch.script.field.vectors.FloatRankVectorsDocValuesField;
2121

2222
import java.io.IOException;
2323

24-
final class MultiVectorDVLeafFieldData implements LeafFieldData {
24+
final class RankVectorsDVLeafFieldData implements LeafFieldData {
2525
private final LeafReader reader;
2626
private final String field;
2727
private final DenseVectorFieldMapper.ElementType elementType;
2828
private final int dims;
2929

30-
MultiVectorDVLeafFieldData(LeafReader reader, String field, DenseVectorFieldMapper.ElementType elementType, int dims) {
30+
RankVectorsDVLeafFieldData(LeafReader reader, String field, DenseVectorFieldMapper.ElementType elementType, int dims) {
3131
this.reader = reader;
3232
this.field = field;
3333
this.elementType = elementType;
@@ -38,11 +38,11 @@ final class MultiVectorDVLeafFieldData implements LeafFieldData {
3838
public DocValuesScriptFieldFactory getScriptFieldFactory(String name) {
3939
try {
4040
BinaryDocValues values = DocValues.getBinary(reader, field);
41-
BinaryDocValues magnitudeValues = DocValues.getBinary(reader, field + MultiDenseVectorFieldMapper.VECTOR_MAGNITUDES_SUFFIX);
41+
BinaryDocValues magnitudeValues = DocValues.getBinary(reader, field + RankVectorsFieldMapper.VECTOR_MAGNITUDES_SUFFIX);
4242
return switch (elementType) {
43-
case BYTE -> new ByteMultiDenseVectorDocValuesField(values, magnitudeValues, name, elementType, dims);
44-
case FLOAT -> new FloatMultiDenseVectorDocValuesField(values, magnitudeValues, name, elementType, dims);
45-
case BIT -> new BitMultiDenseVectorDocValuesField(values, magnitudeValues, name, elementType, dims);
43+
case BYTE -> new ByteRankVectorsDocValuesField(values, magnitudeValues, name, elementType, dims);
44+
case FLOAT -> new FloatRankVectorsDocValuesField(values, magnitudeValues, name, elementType, dims);
45+
case BIT -> new BitRankVectorsDocValuesField(values, magnitudeValues, name, elementType, dims);
4646
};
4747
} catch (IOException e) {
4848
throw new IllegalStateException("Cannot load doc values for multi-vector field!", e);
Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@
5151
import static org.elasticsearch.index.mapper.vectors.DenseVectorFieldMapper.MAX_DIMS_COUNT_BIT;
5252
import static org.elasticsearch.index.mapper.vectors.DenseVectorFieldMapper.namesToElementType;
5353

54-
public class MultiDenseVectorFieldMapper extends FieldMapper {
54+
public class RankVectorsFieldMapper extends FieldMapper {
5555

5656
public static final String VECTOR_MAGNITUDES_SUFFIX = "._magnitude";
57-
public static final FeatureFlag FEATURE_FLAG = new FeatureFlag("multi_dense_vector");
58-
public static final String CONTENT_TYPE = "multi_dense_vector";
57+
public static final FeatureFlag FEATURE_FLAG = new FeatureFlag("rank_vectors");
58+
public static final String CONTENT_TYPE = "rank_vectors";
5959

60-
private static MultiDenseVectorFieldMapper toType(FieldMapper in) {
61-
return (MultiDenseVectorFieldMapper) in;
60+
private static RankVectorsFieldMapper toType(FieldMapper in) {
61+
return (RankVectorsFieldMapper) in;
6262
}
6363

6464
public static class Builder extends FieldMapper.Builder {
@@ -122,24 +122,24 @@ protected Parameter<?>[] getParameters() {
122122
return new Parameter<?>[] { elementType, dims, meta };
123123
}
124124

125-
public MultiDenseVectorFieldMapper.Builder dimensions(int dimensions) {
125+
public RankVectorsFieldMapper.Builder dimensions(int dimensions) {
126126
this.dims.setValue(dimensions);
127127
return this;
128128
}
129129

130-
public MultiDenseVectorFieldMapper.Builder elementType(DenseVectorFieldMapper.ElementType elementType) {
130+
public RankVectorsFieldMapper.Builder elementType(DenseVectorFieldMapper.ElementType elementType) {
131131
this.elementType.setValue(elementType);
132132
return this;
133133
}
134134

135135
@Override
136-
public MultiDenseVectorFieldMapper build(MapperBuilderContext context) {
136+
public RankVectorsFieldMapper build(MapperBuilderContext context) {
137137
// Validate again here because the dimensions or element type could have been set programmatically,
138138
// which affects index option validity
139139
validate();
140-
return new MultiDenseVectorFieldMapper(
140+
return new RankVectorsFieldMapper(
141141
leafName(),
142-
new MultiDenseVectorFieldType(
142+
new RankVectorsFieldType(
143143
context.buildFullName(leafName()),
144144
elementType.getValue(),
145145
dims.getValue(),
@@ -153,16 +153,16 @@ public MultiDenseVectorFieldMapper build(MapperBuilderContext context) {
153153
}
154154

155155
public static final TypeParser PARSER = new TypeParser(
156-
(n, c) -> new MultiDenseVectorFieldMapper.Builder(n, c.indexVersionCreated()),
156+
(n, c) -> new RankVectorsFieldMapper.Builder(n, c.indexVersionCreated()),
157157
notInMultiFields(CONTENT_TYPE)
158158
);
159159

160-
public static final class MultiDenseVectorFieldType extends SimpleMappedFieldType {
160+
public static final class RankVectorsFieldType extends SimpleMappedFieldType {
161161
private final DenseVectorFieldMapper.ElementType elementType;
162162
private final Integer dims;
163163
private final IndexVersion indexCreatedVersion;
164164

165-
public MultiDenseVectorFieldType(
165+
public RankVectorsFieldType(
166166
String name,
167167
DenseVectorFieldMapper.ElementType elementType,
168168
Integer dims,
@@ -207,7 +207,7 @@ public boolean isAggregatable() {
207207

208208
@Override
209209
public IndexFieldData.Builder fielddataBuilder(FieldDataContext fieldDataContext) {
210-
return new MultiVectorIndexFieldData.Builder(name(), CoreValuesSourceType.KEYWORD, indexCreatedVersion, dims, elementType);
210+
return new RankVectorsIndexFieldData.Builder(name(), CoreValuesSourceType.KEYWORD, indexCreatedVersion, dims, elementType);
211211
}
212212

213213
@Override
@@ -231,19 +231,14 @@ DenseVectorFieldMapper.ElementType getElementType() {
231231

232232
private final IndexVersion indexCreatedVersion;
233233

234-
private MultiDenseVectorFieldMapper(
235-
String simpleName,
236-
MappedFieldType fieldType,
237-
BuilderParams params,
238-
IndexVersion indexCreatedVersion
239-
) {
234+
private RankVectorsFieldMapper(String simpleName, MappedFieldType fieldType, BuilderParams params, IndexVersion indexCreatedVersion) {
240235
super(simpleName, fieldType, params);
241236
this.indexCreatedVersion = indexCreatedVersion;
242237
}
243238

244239
@Override
245-
public MultiDenseVectorFieldType fieldType() {
246-
return (MultiDenseVectorFieldType) super.fieldType();
240+
public RankVectorsFieldType fieldType() {
241+
return (RankVectorsFieldType) super.fieldType();
247242
}
248243

249244
@Override
@@ -282,14 +277,14 @@ public void parse(DocumentParserContext context) throws IOException {
282277
);
283278
}
284279
}
285-
MultiDenseVectorFieldType updatedFieldType = new MultiDenseVectorFieldType(
280+
RankVectorsFieldType updatedFieldType = new RankVectorsFieldType(
286281
fieldType().name(),
287282
fieldType().elementType,
288283
currentDims,
289284
indexCreatedVersion,
290285
fieldType().meta()
291286
);
292-
Mapper update = new MultiDenseVectorFieldMapper(leafName(), updatedFieldType, builderParams, indexCreatedVersion);
287+
Mapper update = new RankVectorsFieldMapper(leafName(), updatedFieldType, builderParams, indexCreatedVersion);
293288
context.addDynamicMapper(update);
294289
return;
295290
}
@@ -371,12 +366,12 @@ protected String contentType() {
371366

372367
@Override
373368
public FieldMapper.Builder getMergeBuilder() {
374-
return new MultiDenseVectorFieldMapper.Builder(leafName(), indexCreatedVersion).init(this);
369+
return new RankVectorsFieldMapper.Builder(leafName(), indexCreatedVersion).init(this);
375370
}
376371

377372
@Override
378373
protected SyntheticSourceSupport syntheticSourceSupport() {
379-
return new SyntheticSourceSupport.Native(new MultiDenseVectorFieldMapper.DocValuesSyntheticFieldLoader());
374+
return new SyntheticSourceSupport.Native(new RankVectorsFieldMapper.DocValuesSyntheticFieldLoader());
380375
}
381376

382377
private class DocValuesSyntheticFieldLoader extends SourceLoader.DocValuesBasedSyntheticFieldLoader {
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222
import org.elasticsearch.search.sort.BucketedSort;
2323
import org.elasticsearch.search.sort.SortOrder;
2424

25-
public class MultiVectorIndexFieldData implements IndexFieldData<MultiVectorDVLeafFieldData> {
25+
public class RankVectorsIndexFieldData implements IndexFieldData<RankVectorsDVLeafFieldData> {
2626
protected final String fieldName;
2727
protected final ValuesSourceType valuesSourceType;
2828
private final int dims;
2929
private final IndexVersion indexVersion;
3030
private final DenseVectorFieldMapper.ElementType elementType;
3131

32-
public MultiVectorIndexFieldData(
32+
public RankVectorsIndexFieldData(
3333
String fieldName,
3434
int dims,
3535
ValuesSourceType valuesSourceType,
@@ -54,19 +54,19 @@ public ValuesSourceType getValuesSourceType() {
5454
}
5555

5656
@Override
57-
public MultiVectorDVLeafFieldData load(LeafReaderContext context) {
58-
return new MultiVectorDVLeafFieldData(context.reader(), fieldName, elementType, dims);
57+
public RankVectorsDVLeafFieldData load(LeafReaderContext context) {
58+
return new RankVectorsDVLeafFieldData(context.reader(), fieldName, elementType, dims);
5959
}
6060

6161
@Override
62-
public MultiVectorDVLeafFieldData loadDirect(LeafReaderContext context) throws Exception {
62+
public RankVectorsDVLeafFieldData loadDirect(LeafReaderContext context) throws Exception {
6363
return load(context);
6464
}
6565

6666
@Override
6767
public SortField sortField(Object missingValue, MultiValueMode sortMode, XFieldComparatorSource.Nested nested, boolean reverse) {
6868
throw new IllegalArgumentException(
69-
"Field [" + fieldName + "] of type [" + MultiDenseVectorFieldMapper.CONTENT_TYPE + "] doesn't support sort"
69+
"Field [" + fieldName + "] of type [" + RankVectorsFieldMapper.CONTENT_TYPE + "] doesn't support sort"
7070
);
7171
}
7272

@@ -108,7 +108,7 @@ public Builder(
108108

109109
@Override
110110
public IndexFieldData<?> build(IndexFieldDataCache cache, CircuitBreakerService breakerService) {
111-
return new MultiVectorIndexFieldData(name, dims, valuesSourceType, indexVersion, elementType);
111+
return new RankVectorsIndexFieldData(name, dims, valuesSourceType, indexVersion, elementType);
112112
}
113113
}
114114
}

0 commit comments

Comments
 (0)