28
28
import org .opensearch .knn .index .VectorDataType ;
29
29
import org .opensearch .knn .index .codec .nativeindex .NativeIndexWriter ;
30
30
import org .opensearch .knn .index .quantizationservice .QuantizationService ;
31
+ import org .opensearch .knn .index .remote .RemoteIndexBuilder ;
31
32
import org .opensearch .knn .index .vectorvalues .KNNVectorValues ;
32
33
import org .opensearch .knn .plugin .stats .KNNGraphValue ;
33
34
import org .opensearch .knn .quantization .models .quantizationParams .QuantizationParams ;
@@ -54,15 +55,26 @@ public class NativeEngines990KnnVectorsWriter extends KnnVectorsWriter {
54
55
private final List <NativeEngineFieldVectorsWriter <?>> fields = new ArrayList <>();
55
56
private boolean finished ;
56
57
private final Integer approximateThreshold ;
58
+ private final RemoteIndexBuilder remoteIndexBuilder ;
57
59
58
60
public NativeEngines990KnnVectorsWriter (
59
61
SegmentWriteState segmentWriteState ,
60
62
FlatVectorsWriter flatVectorsWriter ,
61
63
Integer approximateThreshold
64
+ ) {
65
+ this (segmentWriteState , flatVectorsWriter , approximateThreshold , null );
66
+ }
67
+
68
+ public NativeEngines990KnnVectorsWriter (
69
+ SegmentWriteState segmentWriteState ,
70
+ FlatVectorsWriter flatVectorsWriter ,
71
+ Integer approximateThreshold ,
72
+ RemoteIndexBuilder remoteIndexBuilder
62
73
) {
63
74
this .segmentWriteState = segmentWriteState ;
64
75
this .flatVectorsWriter = flatVectorsWriter ;
65
76
this .approximateThreshold = approximateThreshold ;
77
+ this .remoteIndexBuilder = remoteIndexBuilder ;
66
78
}
67
79
68
80
/**
@@ -114,7 +126,13 @@ public void flush(int maxDoc, final Sorter.DocMap sortMap) throws IOException {
114
126
);
115
127
continue ;
116
128
}
117
- final NativeIndexWriter writer = NativeIndexWriter .getWriter (fieldInfo , segmentWriteState , quantizationState );
129
+ final NativeIndexWriter writer = NativeIndexWriter .getWriter (
130
+ fieldInfo ,
131
+ segmentWriteState ,
132
+ quantizationState ,
133
+ remoteIndexBuilder ,
134
+ knnVectorValuesSupplier
135
+ );
118
136
final KNNVectorValues <?> knnVectorValues = knnVectorValuesSupplier .get ();
119
137
120
138
StopWatch stopWatch = new StopWatch ().start ();
@@ -153,7 +171,13 @@ public void mergeOneField(final FieldInfo fieldInfo, final MergeState mergeState
153
171
);
154
172
return ;
155
173
}
156
- final NativeIndexWriter writer = NativeIndexWriter .getWriter (fieldInfo , segmentWriteState , quantizationState );
174
+ final NativeIndexWriter writer = NativeIndexWriter .getWriter (
175
+ fieldInfo ,
176
+ segmentWriteState ,
177
+ quantizationState ,
178
+ remoteIndexBuilder ,
179
+ knnVectorValuesSupplier
180
+ );
157
181
final KNNVectorValues <?> knnVectorValues = knnVectorValuesSupplier .get ();
158
182
159
183
StopWatch stopWatch = new StopWatch ().start ();
0 commit comments