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 Details

    • DEFAULT_MAX_DIMENSIONS

      public static final int DEFAULT_MAX_DIMENSIONS
      The maximum number of vector dimensions
      See Also:
    • 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 int getMaxDimensions(String fieldName)
      Returns the maximum number of vector dimensions supported by this codec for the given field name

      Codecs 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.