Class FloatVectorValues

java.lang.Object
org.apache.lucene.index.KnnVectorValues
org.apache.lucene.index.FloatVectorValues
Direct Known Subclasses:
Lucene104ScalarQuantizedVectorsReader.ScalarQuantizedVectorValues, OffHeapFloatVectorValues

public abstract class FloatVectorValues extends KnnVectorValues
This class provides access to per-document floating point vector values indexed as KnnFloatVectorField.
WARNING: This API is experimental and might change in incompatible ways in the next release.
  • Constructor Details

    • FloatVectorValues

      protected FloatVectorValues()
      Sole constructor
  • Method Details

    • vectorValue

      public abstract float[] vectorValue(int ord) throws IOException
      Return the vector value for the given vector ordinal which must be in [0, size() - 1], otherwise IndexOutOfBoundsException is thrown. The returned array may be shared across calls.
      Returns:
      the vector value
      Throws:
      IOException
    • copy

      public abstract FloatVectorValues copy() throws IOException
      Description copied from class: KnnVectorValues
      Creates a new copy of this KnnVectorValues. This is helpful when you need to access different values at once, to avoid overwriting the underlying vector returned.
      Specified by:
      copy in class KnnVectorValues
      Throws:
      IOException
    • checkField

      public static void checkField(LeafReader in, String field)
      Checks the Vector Encoding of a field
      Throws:
      IllegalStateException - if field has vectors, but using a different encoding
      WARNING: This API is experimental and might change in incompatible ways in the next release.
      NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
    • scorer

      public VectorScorer scorer(float[] target) throws IOException
      Return a VectorScorer for the given query vector and the current FloatVectorValues. When the underlying format quantizes the vectors, this will return a VectorScorer that scores against the quantized vectors.
      Parameters:
      target - the query vector
      Returns:
      a VectorScorer instance or null
      Throws:
      IOException
    • rescorer

      public VectorScorer rescorer(float[] target) throws IOException
      Rescore using the given query vector and the current FloatVectorValues. This is unique from scorer() in that it is explicitly for rescoring an existing set of hits and thus will often utilize the highest fidelity scoring algorithm available. This is useful when the initial search used a quantized index or an approximate search algorithm, and now we want to rescore the hits using the full fidelity vectors. The default implementation is to call scorer(float[]) assuming that the scorer is already the highest fidelity implementation available.
      Parameters:
      target - the query vector
      Returns:
      a VectorScorer instance or null
      Throws:
      IOException - if an I/O error occurs
    • getEncoding

      public VectorEncoding getEncoding()
      Description copied from class: KnnVectorValues
      The vector encoding of these values.
      Specified by:
      getEncoding in class KnnVectorValues
    • fromFloats

      public static FloatVectorValues fromFloats(List<float[]> vectors, int dim)
      Creates a FloatVectorValues from a list of float arrays.
      Parameters:
      vectors - the list of float arrays
      dim - the dimension of the vectors
      Returns:
      a FloatVectorValues instance