KnnVectorValues (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.index, class: KnnVectorValues

Package org.apache.lucene.index

# Class KnnVectorValues

java.lang.Object
org.apache.lucene.index.KnnVectorValues

Direct Known Subclasses:
  `ByteVectorValues`, `FloatVectorValues`

public abstract class KnnVectorValues extends Object
This class abstracts addressing of document vector values indexed as `KnnFloatVectorField` or `KnnByteVectorField`.

WARNING: This API is experimental and might change in incompatible ways in the next release.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `KnnVectorValues.DocIndexIterator`
  A DocIdSetIterator that also provides an index() method tracking a distinct ordinal for a vector associated with each doc.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `KnnVectorValues()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract KnnVectorValues`
  `copy()`
  Creates a new copy of this `KnnVectorValues`.
  `protected KnnVectorValues.DocIndexIterator`
  `createDenseIterator()`
  Creates an iterator for instances where every doc has a value, and the value ordinals are equal to the docids.
  `protected KnnVectorValues.DocIndexIterator`
  `createSparseIterator()`
  Creates an iterator from this instance's ordinal-to-docid mapping which must be monotonic (docid increases when ordinal does).
  `abstract int`
  `dimension()`
  Return the dimension of the vectors
  `protected static KnnVectorValues.DocIndexIterator`
  `fromDISI(DocIdSetIterator docsWithField)`
  Creates an iterator from a DocIdSetIterator indicating which docs have values, and for which ordinals increase monotonically with docid.
  `Bits`
  `getAcceptOrds(Bits acceptDocs)`
  Returns a Bits accepting docs accepted by the argument and having a vector value
  `abstract VectorEncoding`
  `getEncoding()`
  The vector encoding of these values.
  `int`
  `getVectorByteLength()`
  Returns the vector byte length, defaults to dimension multiplied by float byte size
  `KnnVectorValues.DocIndexIterator`
  `iterator()`
  Create an iterator for this instance.
  `int`
  `ordToDoc(int ord)`
  Return the docid of the document indexed with the given vector ordinal.
  `void`
  `prefetch(int[] ordsToPrefetch, int numOrds)`
  Prefetches the provided ordinals
  `abstract int`
  `size()`
  Return the number of vectors for this field.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### KnnVectorValues

    public KnnVectorValues()

- ## Method Details

  - ### dimension

    public abstract int dimension()
    Return the dimension of the vectors

  - ### size

    public abstract int size()
    Return the number of vectors for this field.
    Returns:
      the number of vectors returned by this iterator

  - ### ordToDoc

    public int ordToDoc(int ord)
    Return the docid of the document indexed with the given vector ordinal. This default implementation returns the argument and is appropriate for dense values implementations where every doc has a single value.

  - ### prefetch

    public void prefetch(int[] ordsToPrefetch, int numOrds) throws IOException
    Prefetches the provided ordinals
    Parameters:
      `ordsToPrefetch` - a list of ordinals to prefetch
      `numOrds` - number of ords to prefetch from ordsToPrefetch array
    Throws:
      `IOException`

  - ### copy

    public abstract KnnVectorValues copy() throws IOException
    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.
    Throws:
      `IOException`

  - ### getVectorByteLength

    public int getVectorByteLength()
    Returns the vector byte length, defaults to dimension multiplied by float byte size

  - ### getEncoding

    public abstract VectorEncoding getEncoding()
    The vector encoding of these values.

  - ### getAcceptOrds

    public Bits getAcceptOrds(Bits acceptDocs)
    Returns a Bits accepting docs accepted by the argument and having a vector value

  - ### iterator

    public KnnVectorValues.DocIndexIterator iterator()
    Create an iterator for this instance.

  - ### createDenseIterator

    protected KnnVectorValues.DocIndexIterator createDenseIterator()
    Creates an iterator for instances where every doc has a value, and the value ordinals are equal to the docids.

  - ### fromDISI

    protected static KnnVectorValues.DocIndexIterator fromDISI(DocIdSetIterator docsWithField)
    Creates an iterator from a DocIdSetIterator indicating which docs have values, and for which ordinals increase monotonically with docid.

  - ### createSparseIterator

    protected KnnVectorValues.DocIndexIterator createSparseIterator()
    Creates an iterator from this instance's ordinal-to-docid mapping which must be monotonic (docid increases when ordinal does).