Package org.apache.lucene.codecs
Class KnnVectorsFormat
- java.lang.Object
-
- org.apache.lucene.codecs.KnnVectorsFormat
-
- All Implemented Interfaces:
NamedSPILoader.NamedSPI
- Direct Known Subclasses:
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 int
DEFAULT_MAX_DIMENSIONS
The maximum number of vector dimensionsstatic KnnVectorsFormat
EMPTY
EMPTY throws an exception when written.
-
Constructor Summary
Constructors Modifier Constructor Description protected
KnnVectorsFormat(String name)
Sole constructor
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static Set<String>
availableKnnVectorsFormats()
returns a list of all available format namesabstract KnnVectorsReader
fieldsReader(SegmentReadState state)
Returns aKnnVectorsReader
to read the vectors from the index.abstract KnnVectorsWriter
fieldsWriter(SegmentWriteState state)
Returns aKnnVectorsWriter
to write the vectors to the index.static KnnVectorsFormat
forName(String name)
looks up a format by nameint
getMaxDimensions(String fieldName)
Returns the maximum number of vector dimensions supported by this codec for the given field nameString
getName()
static void
reloadKnnVectorsFormat(ClassLoader classloader)
Reloads the KnnVectorsFormat list from the givenClassLoader
.
-
-
-
Field Detail
-
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 Detail
-
KnnVectorsFormat
protected KnnVectorsFormat(String name)
Sole constructor
-
-
Method Detail
-
getName
public String getName()
- Specified by:
getName
in interfaceNamedSPILoader.NamedSPI
-
reloadKnnVectorsFormat
public static void reloadKnnVectorsFormat(ClassLoader classloader)
Reloads the KnnVectorsFormat list from the givenClassLoader
.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 aKnnVectorsWriter
to write the vectors to the index.- Throws:
IOException
-
fieldsReader
public abstract KnnVectorsReader fieldsReader(SegmentReadState state) throws IOException
Returns aKnnVectorsReader
to read the vectors from the index.- Throws:
IOException
-
getMaxDimensions
public int getMaxDimensions(String fieldName)
Returns the maximum number of vector dimensions supported by this codec for the given field nameCodecs should override this method to specify the maximum number of dimensions they support.
- Parameters:
fieldName
- the field name- Returns:
- the maximum number of vector dimensions.
-
-