Class FlatVectorsWriter

java.lang.Object
org.apache.lucene.codecs.KnnVectorsWriter
org.apache.lucene.codecs.hnsw.FlatVectorsWriter
All Implemented Interfaces:
Closeable, AutoCloseable, Accountable
Direct Known Subclasses:
Lucene102BinaryQuantizedVectorsWriter, Lucene99FlatVectorsWriter, Lucene99ScalarQuantizedVectorsWriter

public abstract class FlatVectorsWriter extends KnnVectorsWriter
Vectors' writer for a field that allows additional indexing logic to be implemented by the caller
WARNING: This API is experimental and might change in incompatible ways in the next release.
  • Field Details

    • vectorsScorer

      protected final FlatVectorsScorer vectorsScorer
      Scorer for flat vectors
  • Constructor Details

    • FlatVectorsWriter

      protected FlatVectorsWriter(FlatVectorsScorer vectorsScorer)
      Sole constructor
  • Method Details

    • getFlatVectorScorer

      public FlatVectorsScorer getFlatVectorScorer()
      Returns:
      the FlatVectorsScorer for this reader.
    • addField

      public abstract FlatFieldVectorsWriter<?> addField(FieldInfo fieldInfo) throws IOException
      Add a new field for indexing
      Specified by:
      addField in class KnnVectorsWriter
      Parameters:
      fieldInfo - fieldInfo of the field to add
      Returns:
      a writer for the field
      Throws:
      IOException - if an I/O error occurs when adding the field
    • mergeOneFieldToIndex

      public abstract CloseableRandomVectorScorerSupplier mergeOneFieldToIndex(FieldInfo fieldInfo, MergeState mergeState) throws IOException
      Write the field for merging, providing a scorer over the newly merged flat vectors. This way any additional merging logic can be implemented by the user of this class.
      Parameters:
      fieldInfo - fieldInfo of the field to merge
      mergeState - mergeState of the segments to merge
      Returns:
      a scorer over the newly merged flat vectors, which should be closed as it holds a temporary file handle to read over the newly merged vectors
      Throws:
      IOException - if an I/O error occurs when merging