Package org.apache.lucene.document
Class KnnVectorField
java.lang.Object
org.apache.lucene.document.Field
org.apache.lucene.document.KnnVectorField
- All Implemented Interfaces:
IndexableField
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
VectorValues
, 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 KnnVectorField 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
ConstructorsConstructorDescriptionKnnVectorField
(String name, float[] vector) Creates a numeric vector field with the default EUCLIDEAN_HNSW (L2) similarity.KnnVectorField
(String name, float[] vector, FieldType fieldType) Creates a numeric vector field.KnnVectorField
(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.void
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, name, numericValue, readerValue, setBytesValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, setIntValue, setLongValue, setReaderValue, setShortValue, setStringValue, setTokenStream, stringValue, tokenStream, tokenStreamValue, toString
-
Constructor Details
-
KnnVectorField
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 strategies (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.
-
KnnVectorField
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.
-
KnnVectorField
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.
-
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
-