Package org.apache.lucene.document
Class KnnFloatVectorField
java.lang.Object
org.apache.lucene.document.Field
org.apache.lucene.document.KnnFloatVectorField
- All Implemented Interfaces:
IndexableField
- Direct Known Subclasses:
KnnVectorField
A field that contains a single floating-point numeric vector (or none) for each document. Vectors
are dense - that is, every dimension of a vector contains an explicit value, stored packed into
an array (of type float[]) whose length is the vector dimension. Values can be retrieved using
FloatVectorValues
, which is a forward-only docID-based iterator and also offers
random-access by dense ordinal (not docId). VectorSimilarityFunction
may be used to
compare vectors at query time (for example as part of result ranking). A KnnFloatVectorField
may be associated with a search similarity function defining the metric used
for nearest-neighbor search among vectors of that field.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.document.Field
Field.Store
-
Field Summary
Fields inherited from class org.apache.lucene.document.Field
fieldsData, name, tokenStream, type
-
Constructor Summary
ConstructorDescriptionKnnFloatVectorField
(String name, float[] vector) Creates a numeric vector field with the default EUCLIDEAN_HNSW (L2) similarity.KnnFloatVectorField
(String name, float[] vector, FieldType fieldType) Creates a numeric vector field.KnnFloatVectorField
(String name, float[] vector, VectorSimilarityFunction similarityFunction) Creates a numeric vector field. -
Method Summary
Modifier and TypeMethodDescriptionstatic FieldType
createFieldType
(int dimension, VectorSimilarityFunction similarityFunction) A convenience method for creating a vector field type.static Query
newVectorQuery
(String field, float[] queryVector, int k) Create a new vector query for the provided field targeting the float vectorvoid
setVectorValue
(float[] value) Set the vector value of this fieldfloat[]
Return the vector value of this fieldMethods inherited from class org.apache.lucene.document.Field
binaryValue, fieldType, getCharSequenceValue, invertableType, name, numericValue, readerValue, setBytesValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, setIntValue, setLongValue, setReaderValue, setShortValue, setStringValue, setTokenStream, storedValue, stringValue, tokenStream, tokenStreamValue, toString
-
Constructor Details
-
KnnFloatVectorField
public KnnFloatVectorField(String name, float[] vector, VectorSimilarityFunction similarityFunction) Creates a numeric vector field. Fields are single-valued: each document has either one value or no value. Vectors of a single field share the same dimension and similarity function. Note that some vector similarities (likeVectorSimilarityFunction.DOT_PRODUCT
) require values to be unit-length, which can be enforced usingVectorUtil.l2normalize(float[])
.- Parameters:
name
- field namevector
- valuesimilarityFunction
- a function defining vector proximity.- Throws:
IllegalArgumentException
- if any parameter is null, or the vector is empty or has dimension > 1024.
-
KnnFloatVectorField
Creates a numeric vector field with the default EUCLIDEAN_HNSW (L2) similarity. Fields are single-valued: each document has either one value or no value. Vectors of a single field share the same dimension and similarity function.- Parameters:
name
- field namevector
- value- Throws:
IllegalArgumentException
- if any parameter is null, or the vector is empty or has dimension > 1024.
-
KnnFloatVectorField
Creates a numeric vector field. Fields are single-valued: each document has either one value or no value. Vectors of a single field share the same dimension and similarity function.- Parameters:
name
- field namevector
- valuefieldType
- field type- Throws:
IllegalArgumentException
- if any parameter is null, or the vector is empty or has dimension > 1024.
-
-
Method Details
-
createFieldType
A convenience method for creating a vector field type.- Parameters:
dimension
- dimension of vectorssimilarityFunction
- a function defining vector proximity.- Throws:
IllegalArgumentException
- if any parameter is null, or has dimension > 1024.
-
newVectorQuery
Create a new vector query for the provided field targeting the float vector- Parameters:
field
- The field to queryqueryVector
- The float vector targetk
- The number of nearest neighbors to gather- Returns:
- A new vector query
-
vectorValue
public float[] vectorValue()Return the vector value of this field -
setVectorValue
public void setVectorValue(float[] value) Set the vector value of this field- Parameters:
value
- the value to set; must not be null, and length must match the field type
-