Class FlatVectorsReader

java.lang.Object
org.apache.lucene.codecs.FlatVectorsReader
All Implemented Interfaces:
Closeable, AutoCloseable, Accountable
Direct Known Subclasses:
Lucene99FlatVectorsReader, Lucene99ScalarQuantizedVectorsReader

public abstract class FlatVectorsReader extends Object implements Closeable, Accountable
Reads vectors from an index. When searching this reader, it iterates every vector in the index and scores them

This class is useful when:

  • the number of vectors is small
  • when used along side some additional indexing structure that can be used to better search the vectors (like HNSW).
WARNING: This API is experimental and might change in incompatible ways in the next release.
  • Constructor Details

    • FlatVectorsReader

      protected FlatVectorsReader()
      Sole constructor
  • Method Details

    • getRandomVectorScorer

      public abstract RandomVectorScorer getRandomVectorScorer(String field, float[] target) throws IOException
      Returns a RandomVectorScorer for the given field and target vector.
      Parameters:
      field - the field to search
      target - the target vector
      Returns:
      a RandomVectorScorer for the given field and target vector.
      Throws:
      IOException - if an I/O error occurs when reading from the index.
    • getRandomVectorScorer

      public abstract RandomVectorScorer getRandomVectorScorer(String field, byte[] target) throws IOException
      Returns a RandomVectorScorer for the given field and target vector.
      Parameters:
      field - the field to search
      target - the target vector
      Returns:
      a RandomVectorScorer for the given field and target vector.
      Throws:
      IOException - if an I/O error occurs when reading from the index.
    • checkIntegrity

      public abstract void checkIntegrity() throws IOException
      Checks consistency of this reader.

      Note that this may be costly in terms of I/O, e.g. may involve computing a checksum value against large data files.

      Throws:
      IOException
      NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
    • getFloatVectorValues

      public abstract FloatVectorValues getFloatVectorValues(String field) throws IOException
      Returns the FloatVectorValues for the given field. The behavior is undefined if the given field doesn't have KNN vectors enabled on its FieldInfo. The return value is never null.
      Throws:
      IOException
    • getByteVectorValues

      public abstract ByteVectorValues getByteVectorValues(String field) throws IOException
      Returns the ByteVectorValues for the given field. The behavior is undefined if the given field doesn't have KNN vectors enabled on its FieldInfo. The return value is never null.
      Throws:
      IOException