Lucene99FlatVectorsReader (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.codecs.lucene99, class: Lucene99FlatVectorsReader

Package org.apache.lucene.codecs.lucene99

# Class Lucene99FlatVectorsReader

java.lang.Object
org.apache.lucene.codecs.KnnVectorsReader
org.apache.lucene.codecs.hnsw.FlatVectorsReader
org.apache.lucene.codecs.lucene99.Lucene99FlatVectorsReader

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`, `Accountable`

public final class Lucene99FlatVectorsReader extends FlatVectorsReader
Reads vectors from the index segments.

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

- ## Field Summary

  ### Fields inherited from interface org.apache.lucene.util.Accountable

  `NULL_ACCOUNTABLE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Lucene99FlatVectorsReader(SegmentReadState state, FlatVectorsScorer scorer)`
  `Lucene99FlatVectorsReader(SegmentReadState state, FlatVectorsScorer scorer, DataAccessHint accessHint)`
  Creates a Lucene99FlatVectorsReader.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `checkIntegrity()`
  Checks consistency of this reader.
  `void`
  `close()`
  `void`
  `finishMerge()`
  Optional: reset or close merge resources used in the reader
  `ByteVectorValues`
  `getByteVectorValues(String field)`
  Returns the `ByteVectorValues` for the given `field`.
  `FlatVectorsScorer`
  `getFlatVectorScorer(String field)`
  Returns a `FlatVectorsScorer` for the given field.
  `FloatVectorValues`
  `getFloatVectorValues(String field)`
  Returns the `FloatVectorValues` for the given `field`.
  `FlatVectorsReader`
  `getMergeInstance()`
  Returns an instance optimized for merging.
  `Map<String,Long>`
  `getOffHeapByteSize(FieldInfo fieldInfo)`
  Returns the desired size of off-heap memory for the given field.
  `RandomVectorScorer`
  `getRandomVectorScorer(String field, byte[] target)`
  Returns a `RandomVectorScorer` for the given field and target vector.
  `RandomVectorScorer`
  `getRandomVectorScorer(String field, float[] target)`
  Returns a `RandomVectorScorer` for the given field and target vector.
  `long`
  `ramBytesUsed()`
  Returns an estimate of the JVM heap memory used by this object in bytes.

  ### Methods inherited from class org.apache.lucene.codecs.hnsw.FlatVectorsReader

  `search, search`

  ### Methods inherited from class org.apache.lucene.codecs.KnnVectorsReader

  `mergeOffHeapByteSizeMaps`

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

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

  ### Methods inherited from interface org.apache.lucene.util.Accountable

  `getChildResources`

- ## Constructor Details

  - ### Lucene99FlatVectorsReader

    public Lucene99FlatVectorsReader(SegmentReadState state, FlatVectorsScorer scorer) throws IOException
    Throws:
      `IOException`

  - ### Lucene99FlatVectorsReader

    public Lucene99FlatVectorsReader(SegmentReadState state, FlatVectorsScorer scorer, DataAccessHint accessHint) throws IOException
    Creates a Lucene99FlatVectorsReader.
    Parameters:
      `state` - the segment read state
      `scorer` - the flat vectors scorer
      `accessHint` - a data access hint, or null
    Throws:
      `IOException`

- ## Method Details

  - ### ramBytesUsed

    public long ramBytesUsed()
    Description copied from interface: `Accountable`
    Returns an estimate of the JVM heap memory used by this object in bytes. The method name uses "ram" for historical reasons; only JVM heap memory should be reported. Off-heap resources such as memory-mapped files or native direct buffers should not be included. Negative values are illegal.

  - ### getOffHeapByteSize

    public Map<String,Long> getOffHeapByteSize(FieldInfo fieldInfo)
    Description copied from class: `KnnVectorsReader`
    Returns the desired size of off-heap memory for the given field. This size can be used to help determine the memory requirements for optimal search performance, which can be greatly affected by page faults when not enough memory is available.

    For reporting purposes, the size of the off-heap index structures is broken down by their file extension, which provides a logical categorization of their purpose, e.g. the `Lucene99HnswVectorsFormat` stores the HNSW graph neighbours lists in a file with the "vex" extension.

    The long value is the size in bytes of the off-heap space needed if the associated index structure were to be fully loaded in memory. While somewhat analogous to `Accountable.ramBytesUsed()` (which reports actual on-heap memory usage), the sizes reported by this method are not actual usage but rather the amount of available memory needed to fully load the index into memory, rather than an actual RAM usage requirement.

    To determine the total desired off-heap memory size for the given field:

         getOffHeapByteSize(field).values().stream().mapToLong(Long::longValue).sum();

    The default implementation returns an empty map.

    Overrides:
      `getOffHeapByteSize` in class `KnnVectorsReader`
    Parameters:
      `fieldInfo` - the fieldInfo
    Returns:
      a map of the desired off-heap memory requirements by category

  - ### checkIntegrity

    public void checkIntegrity() throws IOException
    Description copied from class: `KnnVectorsReader`
    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.

    Specified by:
      `checkIntegrity` in class `KnnVectorsReader`
    Throws:
      `IOException`

  - ### getMergeInstance

    public FlatVectorsReader getMergeInstance() throws IOException
    Description copied from class: `FlatVectorsReader`
    Returns an instance optimized for merging. This instance may only be consumed in the thread that called `FlatVectorsReader.getMergeInstance()`.

    The default implementation returns `this`

    Overrides:
      `getMergeInstance` in class `FlatVectorsReader`
    Throws:
      `IOException`

  - ### getFloatVectorValues

    public FloatVectorValues getFloatVectorValues(String field) throws IOException
    Description copied from class: `KnnVectorsReader`
    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`.
    Specified by:
      `getFloatVectorValues` in class `KnnVectorsReader`
    Throws:
      `IOException`

  - ### getByteVectorValues

    public ByteVectorValues getByteVectorValues(String field) throws IOException
    Description copied from class: `KnnVectorsReader`
    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`.
    Specified by:
      `getByteVectorValues` in class `KnnVectorsReader`
    Throws:
      `IOException`

  - ### getFlatVectorScorer

    public FlatVectorsScorer getFlatVectorScorer(String field) throws IOException
    Description copied from class: `FlatVectorsReader`
    Returns a `FlatVectorsScorer` for the given field.
    Specified by:
      `getFlatVectorScorer` in class `FlatVectorsReader`
    Parameters:
      `field` - the field to search
    Throws:
      `IOException`

  - ### getRandomVectorScorer

    public RandomVectorScorer getRandomVectorScorer(String field, float[] target) throws IOException
    Description copied from class: `FlatVectorsReader`
    Returns a `RandomVectorScorer` for the given field and target vector.
    Specified by:
      `getRandomVectorScorer` in class `FlatVectorsReader`
    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 RandomVectorScorer getRandomVectorScorer(String field, byte[] target) throws IOException
    Description copied from class: `FlatVectorsReader`
    Returns a `RandomVectorScorer` for the given field and target vector.
    Specified by:
      `getRandomVectorScorer` in class `FlatVectorsReader`
    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.

  - ### finishMerge

    public void finishMerge() throws IOException
    Description copied from class: `KnnVectorsReader`
    Optional: reset or close merge resources used in the reader

    The default implementation is empty

    Overrides:
      `finishMerge` in class `KnnVectorsReader`
    Throws:
      `IOException`

  - ### close

    public void close() throws IOException
    Throws:
      `IOException`