java.lang.Object
org.elasticsearch.simdvec.ESNextOSQVectorsScorer
Scorer for quantized vectors stored as an
IndexInput.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final float[]protected static final float[]static final intprotected final intprotected final org.apache.lucene.store.IndexInputThe wrapperIndexInput.protected final byteprotected final intprotected final float[]protected final byteprotected final int[]protected final float[] -
Constructor Summary
ConstructorsConstructorDescriptionESNextOSQVectorsScorer(org.apache.lucene.store.IndexInput in, byte queryBits, byte indexBits, int dimensions, int dataLength) Sole constructor, called by sub-classes. -
Method Summary
Modifier and TypeMethodDescriptionlongquantizeScore(byte[] q) compute the quantize distance between the provided quantized query and the quantized vector that is read from the wrappedIndexInput.voidquantizeScoreBulk(byte[] q, int count, float[] scores) compute the quantize distance between the provided quantized query and the quantized vectors that are read from the wrappedIndexInput.floatscore(float queryLowerInterval, float queryUpperInterval, int queryComponentSum, float queryAdditionalCorrection, org.apache.lucene.index.VectorSimilarityFunction similarityFunction, float centroidDp, float lowerInterval, float upperInterval, int targetComponentSum, float additionalCorrection, float qcDist) Computes the score by applying the necessary corrections to the provided quantized distance.floatscoreBulk(byte[] q, float queryLowerInterval, float queryUpperInterval, int queryComponentSum, float queryAdditionalCorrection, org.apache.lucene.index.VectorSimilarityFunction similarityFunction, float centroidDp, float[] scores) compute the distance between the provided quantized query and the quantized vectors that are read from the wrappedIndexInput.
-
Field Details
-
BULK_SIZE
public static final int BULK_SIZE- See Also:
-
BIT_SCALES
protected static final float[] BIT_SCALES -
in
protected final org.apache.lucene.store.IndexInput inThe wrapperIndexInput. -
queryBits
protected final byte queryBits -
indexBits
protected final byte indexBits -
length
protected final int length -
dimensions
protected final int dimensions -
lowerIntervals
protected final float[] lowerIntervals -
upperIntervals
protected final float[] upperIntervals -
targetComponentSums
protected final int[] targetComponentSums -
additionalCorrections
protected final float[] additionalCorrections
-
-
Constructor Details
-
ESNextOSQVectorsScorer
public ESNextOSQVectorsScorer(org.apache.lucene.store.IndexInput in, byte queryBits, byte indexBits, int dimensions, int dataLength) Sole constructor, called by sub-classes.
-
-
Method Details
-
quantizeScore
compute the quantize distance between the provided quantized query and the quantized vector that is read from the wrappedIndexInput.- Throws:
IOException
-
quantizeScoreBulk
compute the quantize distance between the provided quantized query and the quantized vectors that are read from the wrappedIndexInput. The number of quantized vectors to read is determined by {code count} and the results are stored in the providedscoresarray.- Throws:
IOException
-
score
public float score(float queryLowerInterval, float queryUpperInterval, int queryComponentSum, float queryAdditionalCorrection, org.apache.lucene.index.VectorSimilarityFunction similarityFunction, float centroidDp, float lowerInterval, float upperInterval, int targetComponentSum, float additionalCorrection, float qcDist) Computes the score by applying the necessary corrections to the provided quantized distance. -
scoreBulk
public float scoreBulk(byte[] q, float queryLowerInterval, float queryUpperInterval, int queryComponentSum, float queryAdditionalCorrection, org.apache.lucene.index.VectorSimilarityFunction similarityFunction, float centroidDp, float[] scores) throws IOException compute the distance between the provided quantized query and the quantized vectors that are read from the wrappedIndexInput.The number of vectors to score is defined by
BULK_SIZE. The expected format of the input is as follows: First the quantized vectors are read from the input,then all the lower intervals as floats, then all the upper intervals as floats, then all the target component sums as shorts, and finally all the additional corrections as floats.The results are stored in the provided scores array.
- Throws:
IOException
-