@@ -257,13 +257,13 @@ public void mergeOneField(FieldInfo fieldInfo, MergeState mergeState) throws IOE
257257 @ Override
258258 public CloseableRandomVectorScorerSupplier mergeOneFieldToIndex (
259259 FieldInfo fieldInfo , MergeState mergeState ) throws IOException {
260+ long vectorDataOffset = alignOutput (vectorData , fieldInfo .getVectorEncoding ());
260261 IndexOutput tempVectorData =
261262 segmentWriteState .directory .createTempOutput (
262263 vectorData .getName (), "temp" , segmentWriteState .context );
263264 IndexInput vectorDataInput = null ;
264265 try {
265266 // write the vector data to a temporary file
266- long tempVectorDataOffset = alignOutput (tempVectorData , fieldInfo .getVectorEncoding ());
267267 DocsWithFieldSet docsWithField =
268268 switch (fieldInfo .getVectorEncoding ()) {
269269 case BYTE ->
@@ -277,8 +277,6 @@ public CloseableRandomVectorScorerSupplier mergeOneFieldToIndex(
277277 KnnVectorsWriter .MergedVectorValues .mergeFloatVectorValues (
278278 fieldInfo , mergeState ));
279279 };
280- long vectorDataLength = tempVectorData .getFilePointer () - tempVectorDataOffset ;
281-
282280 CodecUtil .writeFooter (tempVectorData );
283281 IOUtils .close (tempVectorData );
284282
@@ -290,13 +288,10 @@ public CloseableRandomVectorScorerSupplier mergeOneFieldToIndex(
290288 tempVectorData .getName (),
291289 IOContext .DEFAULT .withHints (
292290 FileTypeHint .DATA , FileDataHint .KNN_VECTORS , DataAccessHint .RANDOM ));
293- vectorDataInput .seek (tempVectorDataOffset );
294-
295291 // copy the temporary file vectors to the actual data file
296- long vectorDataOffset = alignOutput (vectorData , fieldInfo .getVectorEncoding ());
297- vectorData .copyBytes (vectorDataInput , vectorDataLength );
298-
292+ vectorData .copyBytes (vectorDataInput , vectorDataInput .length () - CodecUtil .footerLength ());
299293 CodecUtil .retrieveChecksum (vectorDataInput );
294+ long vectorDataLength = vectorData .getFilePointer () - vectorDataOffset ;
300295 writeMeta (
301296 fieldInfo ,
302297 segmentWriteState .segmentInfo .maxDoc (),
@@ -315,8 +310,7 @@ public CloseableRandomVectorScorerSupplier mergeOneFieldToIndex(
315310 new OffHeapByteVectorValues .DenseOffHeapVectorValues (
316311 fieldInfo .getVectorDimension (),
317312 docsWithField .cardinality (),
318- finalVectorDataInput .slice (
319- "temp-vector-data" , tempVectorDataOffset , vectorDataLength ),
313+ finalVectorDataInput ,
320314 fieldInfo .getVectorDimension () * Byte .BYTES ,
321315 vectorsScorer ,
322316 fieldInfo .getVectorSimilarityFunction ()));
@@ -326,8 +320,7 @@ public CloseableRandomVectorScorerSupplier mergeOneFieldToIndex(
326320 new OffHeapFloatVectorValues .DenseOffHeapVectorValues (
327321 fieldInfo .getVectorDimension (),
328322 docsWithField .cardinality (),
329- finalVectorDataInput .slice (
330- "temp-vector-data" , tempVectorDataOffset , vectorDataLength ),
323+ finalVectorDataInput ,
331324 fieldInfo .getVectorDimension () * Float .BYTES ,
332325 vectorsScorer ,
333326 fieldInfo .getVectorSimilarityFunction ()));
0 commit comments