4343import org .elasticsearch .logging .Logger ;
4444
4545import java .io .IOException ;
46- import java .io .UncheckedIOException ;
4746import java .nio .ByteBuffer ;
4847import java .nio .ByteOrder ;
4948import java .util .ArrayList ;
@@ -470,7 +469,6 @@ public NodesIterator getNodesOnLevel(int level) {
470469 @ SuppressForbidden (reason = "require usage of Lucene's IOUtils#deleteFilesIgnoringExceptions(...)" )
471470 public void mergeOneField (FieldInfo fieldInfo , MergeState mergeState ) throws IOException {
472471 flatVectorWriter .mergeOneField (fieldInfo , mergeState );
473- FloatVectorValues vectorValues = KnnVectorsWriter .MergedVectorValues .mergeFloatVectorValues (fieldInfo , mergeState );
474472 // save merged vector values to a temp file
475473 final int numVectors ;
476474 String tempRawVectorsFileName = null ;
@@ -487,9 +485,8 @@ public void mergeOneField(FieldInfo fieldInfo, MergeState mergeState) throws IOE
487485 }
488486 try (IndexInput in = mergeState .segmentInfo .dir .openInput (tempRawVectorsFileName , IOContext .DEFAULT )) {
489487 DatasetOrVectors datasetOrVectors ;
490-
491488 var input = FilterIndexInput .unwrapOnlyTest (in );
492- if (input instanceof MemorySegmentAccessInput memorySegmentAccessInput ) {
489+ if (input instanceof MemorySegmentAccessInput memorySegmentAccessInput && numVectors >= MIN_NUM_VECTORS_FOR_GPU_BUILD ) {
493490 var ds = DatasetUtils .getInstance ().fromInput (memorySegmentAccessInput , numVectors , fieldInfo .getVectorDimension ());
494491 datasetOrVectors = DatasetOrVectors .fromDataset (ds );
495492 } else {
@@ -521,7 +518,6 @@ private static int writeFloatVectorValues(FieldInfo fieldInfo, IndexOutput out,
521518 for (int docV = iterator .nextDoc (); docV != NO_MORE_DOCS ; docV = iterator .nextDoc ()) {
522519 numVectors ++;
523520 float [] vector = floatVectorValues .vectorValue (iterator .index ());
524- out .writeInt (iterator .docID ());
525521 buffer .asFloatBuffer ().put (vector );
526522 out .writeBytes (buffer .array (), buffer .array ().length );
527523 }
@@ -532,12 +528,12 @@ private static FloatVectorValues getFloatVectorValues(FieldInfo fieldInfo, Index
532528 if (numVectors == 0 ) {
533529 return FloatVectorValues .fromFloats (List .of (), fieldInfo .getVectorDimension ());
534530 }
535- final long length = (long ) Float .BYTES * fieldInfo .getVectorDimension () + Integer . BYTES ;
531+ final long length = (long ) Float .BYTES * fieldInfo .getVectorDimension ();
536532 final float [] vector = new float [fieldInfo .getVectorDimension ()];
537533 return new FloatVectorValues () {
538534 @ Override
539535 public float [] vectorValue (int ord ) throws IOException {
540- randomAccessInput .seek (ord * length + Integer . BYTES );
536+ randomAccessInput .seek (ord * length );
541537 randomAccessInput .readFloats (vector , 0 , vector .length );
542538 return vector ;
543539 }
@@ -559,12 +555,7 @@ public int size() {
559555
560556 @ Override
561557 public int ordToDoc (int ord ) {
562- try {
563- randomAccessInput .seek (ord * length );
564- return randomAccessInput .readInt ();
565- } catch (IOException e ) {
566- throw new UncheckedIOException (e );
567- }
558+ throw new UnsupportedOperationException ("Not implemented" );
568559 }
569560 };
570561 }
0 commit comments