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:
Lucene104ScalarQuantizedVectorsWriter, Lucene99FlatVectorsWriter

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
    • mergeOneField

      public final IORunnable mergeOneField(FieldInfo fieldInfo, MergeState mergeState) throws IOException
      Description copied from class: KnnVectorsWriter
      Merges vectors for a single field, returning a runnable for any deferred work (e.g., HNSW graph construction). The default implementation merges naively the vectors and returns null (no deferred work).

      Subclasses should override this method may implement a two-phase merge strategy where flat vectors are written in the first phase and additional indexing structures (like HNSW graphs) are built in the second phase using the already-written flat vector data.

      Overrides:
      mergeOneField in class KnnVectorsWriter
      Parameters:
      fieldInfo - the field to merge
      mergeState - the merge state
      Returns:
      a runnable to execute in phase 2, or null if there is no deferred work
      Throws:
      IOException - if an I/O error occurs
    • mergeOneFlatVectorField

      public abstract void mergeOneFlatVectorField(FieldInfo fieldInfo, MergeState mergeState) throws IOException
      Throws:
      IOException