Package org.apache.lucene.codecs

# Class KnnVectorsFormat

java.lang.Object
org.apache.lucene.codecs.KnnVectorsFormat

All Implemented Interfaces:
  `NamedSPILoader.NamedSPI`

Direct Known Subclasses:
  `FlatVectorsFormat`, `Lucene99HnswScalarQuantizedVectorsFormat`, `Lucene99HnswVectorsFormat`, `PerFieldKnnVectorsFormat`

public abstract class KnnVectorsFormat extends Object implements NamedSPILoader.NamedSPI
Encodes/decodes per-document vector and any associated indexing structures required to support nearest-neighbor search

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`DEFAULT_MAX_DIMENSIONS`
The maximum number of vector dimensions
`static final KnnVectorsFormat`
`EMPTY`
EMPTY throws an exception when written.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`KnnVectorsFormat(String name)`
Sole constructor

## Method Summary

Modifier and Type
Method
Description
`static Set<String>`
`availableKnnVectorsFormats()`
returns a list of all available format names
`abstract KnnVectorsReader`
`fieldsReader(SegmentReadState state)`
Returns a `KnnVectorsReader` to read the vectors from the index.
`abstract KnnVectorsWriter`
`fieldsWriter(SegmentWriteState state)`
Returns a `KnnVectorsWriter` to write the vectors to the index.
`static KnnVectorsFormat`
`forName(String name)`
looks up a format by name
`abstract int`
`getMaxDimensions(String fieldName)`
Returns the maximum number of vector dimensions supported by this codec for the given field name
`String`
`getName()`
`static void`
`reloadKnnVectorsFormat(ClassLoader classloader)`
Reloads the KnnVectorsFormat list from the given `ClassLoader`.

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

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

## Field Details

### DEFAULT_MAX_DIMENSIONS

public static final int DEFAULT_MAX_DIMENSIONS
The maximum number of vector dimensions

See Also:
  - Constant Field Values

### EMPTY

public static final KnnVectorsFormat EMPTY
EMPTY throws an exception when written. It acts as a sentinel indicating a Codec that does not support vectors.

## Constructor Details

### KnnVectorsFormat

protected KnnVectorsFormat(String name)
Sole constructor

## Method Details

### getName

public String getName()

Specified by:
  `getName` in interface `NamedSPILoader.NamedSPI`

### reloadKnnVectorsFormat

public static void reloadKnnVectorsFormat(ClassLoader classloader)
Reloads the KnnVectorsFormat list from the given `ClassLoader`.

NOTE: Only new KnnVectorsFormat are added, existing ones are never removed or replaced.

This method is expensive and should only be called for discovery of new KnnVectorsFormat on the given classpath/classloader!

### forName

public static KnnVectorsFormat forName(String name)
looks up a format by name

### availableKnnVectorsFormats

public static Set<String> availableKnnVectorsFormats()
returns a list of all available format names

### fieldsWriter

public abstract KnnVectorsWriter fieldsWriter(SegmentWriteState state) throws IOException
Returns a `KnnVectorsWriter` to write the vectors to the index.

Throws:
  `IOException`

### fieldsReader

public abstract KnnVectorsReader fieldsReader(SegmentReadState state) throws IOException
Returns a `KnnVectorsReader` to read the vectors from the index.

Throws:
  `IOException`

### getMaxDimensions

public abstract int getMaxDimensions(String fieldName)
Returns the maximum number of vector dimensions supported by this codec for the given field name

Codecs implement this method to specify the maximum number of dimensions they support.

Parameters:
  `fieldName` - the field name
Returns:
  the maximum number of vector dimensions.