Package org.apache.lucene.document

# Class KnnFloatVectorField

java.lang.Object
org.apache.lucene.document.Field
org.apache.lucene.document.KnnFloatVectorField

All Implemented Interfaces:
  `IndexableField`

public class KnnFloatVectorField extends Field
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, type`

## Constructor Summary

Constructors
Constructor
Description
`KnnFloatVectorField(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 Type
Method
Description
`static 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 vector
`void`
`setVectorValue(float[] value)`
Set the vector value of this field
`float[]`
`vectorValue()`
Return the vector value of this field

### Methods 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`

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

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

## 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 (like `VectorSimilarityFunction.DOT_PRODUCT`) require values to be unit-length, which can be enforced using `VectorUtil.l2normalize(float[])`.

Parameters:
  `name` - field name
  `vector` - value
  `similarityFunction` - a function defining vector proximity.
Throws:
  `IllegalArgumentException` - if any parameter is null, or the vector is empty or has dimension > 1024.

### KnnFloatVectorField

public KnnFloatVectorField(String name, float[] vector)
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 name
  `vector` - value
Throws:
  `IllegalArgumentException` - if any parameter is null, or the vector is empty or has dimension > 1024.

### KnnFloatVectorField

public KnnFloatVectorField(String name, float[] vector, FieldType fieldType)
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 name
  `vector` - value
  `fieldType` - field type
Throws:
  `IllegalArgumentException` - if any parameter is null, or the vector is empty or has dimension > 1024.

## Method Details

### createFieldType

public static FieldType createFieldType(int dimension, VectorSimilarityFunction similarityFunction)
A convenience method for creating a vector field type.

Parameters:
  `dimension` - dimension of vectors
  `similarityFunction` - a function defining vector proximity.
Throws:
  `IllegalArgumentException` - if any parameter is null, or has dimension > 1024.

### newVectorQuery

public static Query newVectorQuery(String field, float[] queryVector, int k)
Create a new vector query for the provided field targeting the float vector

Parameters:
  `field` - The field to query
  `queryVector` - The float vector target
  `k` - 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