Class Lucene91HnswVectorsReader.OffHeapFloatVectorValues
java.lang.Object
org.apache.lucene.search.DocIdSetIterator
org.apache.lucene.index.FloatVectorValues
org.apache.lucene.backward_codecs.lucene91.Lucene91HnswVectorsReader.OffHeapFloatVectorValues
- All Implemented Interfaces:
RandomAccessVectorValues<float[]>
- Enclosing class:
- Lucene91HnswVectorsReader
static class Lucene91HnswVectorsReader.OffHeapFloatVectorValues
extends FloatVectorValues
implements RandomAccessVectorValues<float[]>
Read the vector values from the index input. This supports both iterated and random access.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final intprivate final IndexInputprivate final intprivate intprivate intprivate final int[]private final IntUnaryOperatorprivate final intprivate final float[]Fields inherited from class org.apache.lucene.index.FloatVectorValues
MAX_DIMENSIONSFields inherited from class org.apache.lucene.search.DocIdSetIterator
NO_MORE_DOCS -
Constructor Summary
ConstructorsConstructorDescriptionOffHeapFloatVectorValues(int dimension, int size, int[] ordToDoc, IndexInput dataIn) -
Method Summary
Modifier and TypeMethodDescriptionintadvance(int target) Advances to the first beyond the current whose document number is greater than or equal to target, and returns the document number itself.RandomAccessVectorValues<float[]>copy()Creates a new copy of thisRandomAccessVectorValues.intReturn the dimension of the vectorsintdocID()Returns the following:-1ifDocIdSetIterator.nextDoc()orDocIdSetIterator.advance(int)were not called yet.intnextDoc()Advances to the next document in the set and returns the doc it is currently on, orDocIdSetIterator.NO_MORE_DOCSif there are no more docs in the set.
NOTE: after the iterator has exhausted you should not call this method, as it may result in unpredicted behavior.intsize()Return the number of vectors for this field.float[]Return the vector value for the current document ID.float[]vectorValue(int targetOrd) Return the vector value indexed at the given ordinal.Methods inherited from class org.apache.lucene.index.FloatVectorValues
costMethods inherited from class org.apache.lucene.search.DocIdSetIterator
all, empty, range, slowAdvance
-
Field Details
-
dimension
private final int dimension -
size
private final int size -
ordToDoc
private final int[] ordToDoc -
ordToDocOperator
-
dataIn
-
byteSize
private final int byteSize -
value
private final float[] value -
ord
private int ord -
doc
private int doc
-
-
Constructor Details
-
OffHeapFloatVectorValues
OffHeapFloatVectorValues(int dimension, int size, int[] ordToDoc, IndexInput dataIn)
-
-
Method Details
-
dimension
public int dimension()Description copied from class:FloatVectorValuesReturn the dimension of the vectors- Specified by:
dimensionin interfaceRandomAccessVectorValues<float[]>- Specified by:
dimensionin classFloatVectorValues
-
size
public int size()Description copied from class:FloatVectorValuesReturn the number of vectors for this field.- Specified by:
sizein interfaceRandomAccessVectorValues<float[]>- Specified by:
sizein classFloatVectorValues- Returns:
- the number of vectors returned by this iterator
-
vectorValue
Description copied from class:FloatVectorValuesReturn the vector value for the current document ID. It is illegal to call this method when the iterator is not positioned: before advancing, or after failing to advance. The returned array may be shared across calls, re-used, and modified as the iterator advances.- Specified by:
vectorValuein classFloatVectorValues- Returns:
- the vector value
- Throws:
IOException
-
docID
public int docID()Description copied from class:DocIdSetIteratorReturns the following:-1ifDocIdSetIterator.nextDoc()orDocIdSetIterator.advance(int)were not called yet.DocIdSetIterator.NO_MORE_DOCSif the iterator has exhausted.- Otherwise it should return the doc ID it is currently on.
- Specified by:
docIDin classDocIdSetIterator
-
nextDoc
public int nextDoc()Description copied from class:DocIdSetIteratorAdvances to the next document in the set and returns the doc it is currently on, orDocIdSetIterator.NO_MORE_DOCSif there are no more docs in the set.
NOTE: after the iterator has exhausted you should not call this method, as it may result in unpredicted behavior.- Specified by:
nextDocin classDocIdSetIterator
-
advance
public int advance(int target) Description copied from class:DocIdSetIteratorAdvances to the first beyond the current whose document number is greater than or equal to target, and returns the document number itself. Exhausts the iterator and returnsDocIdSetIterator.NO_MORE_DOCSif target is greater than the highest document number in the set.The behavior of this method is undefined when called with
target ≤ current, or after the iterator has exhausted. Both cases may result in unpredicted behavior.When
target > currentit behaves as if written:int advance(int target) { int doc; while ((doc = nextDoc()) < target) { } return doc; }Some implementations are considerably more efficient than that.NOTE: this method may be called with
DocIdSetIterator.NO_MORE_DOCSfor efficiency by some Scorers. If your implementation cannot efficiently determine that it should exhaust, it is recommended that you check for that value in each call to this method.- Specified by:
advancein classDocIdSetIterator
-
copy
Description copied from interface:RandomAccessVectorValuesCreates a new copy of thisRandomAccessVectorValues. This is helpful when you need to access different values at once, to avoid overwriting the underlying float vector returned byRandomAccessVectorValues.vectorValue(int).- Specified by:
copyin interfaceRandomAccessVectorValues<float[]>
-
vectorValue
Description copied from interface:RandomAccessVectorValuesReturn the vector value indexed at the given ordinal.- Specified by:
vectorValuein interfaceRandomAccessVectorValues<float[]>- Parameters:
targetOrd- a valid ordinal, ≥ 0 and <RandomAccessVectorValues.size().- Throws:
IOException
-