Enum VectorSimilarityFunction

  • All Implemented Interfaces:
    Serializable, Comparable<VectorSimilarityFunction>

    public enum VectorSimilarityFunction
    extends Enum<VectorSimilarityFunction>
    Vector similarity function; used in search to return top K most similar vectors to a target vector. This is a label describing the method used during indexing and searching of the vectors in order to determine the nearest neighbors.
    • Enum Constant Detail


        public static final VectorSimilarityFunction DOT_PRODUCT
        Dot product. NOTE: this similarity is intended as an optimized way to perform cosine similarity. In order to use it, all vectors must be of unit length, including both document and query vectors. Using dot product with vectors that are not unit length can result in errors or poor search results.
      • COSINE

        public static final VectorSimilarityFunction COSINE
        Cosine similarity. NOTE: the preferred way to perform cosine similarity is to normalize all vectors to unit length, and instead use DOT_PRODUCT. You should only use this function if you need to preserve the original vectors and cannot normalize them in advance. The similarity score is normalised to assure it is positive.
    • Method Detail

      • values

        public static VectorSimilarityFunction[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (VectorSimilarityFunction c : VectorSimilarityFunction.values())
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static VectorSimilarityFunction valueOf​(String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        name - the name of the enum constant to be returned.
        the enum constant with the specified name
        IllegalArgumentException - if this enum type has no constant with the specified name
        NullPointerException - if the argument is null
      • compare

        public abstract float compare​(float[] v1,
                                      float[] v2)
        Calculates a similarity score between the two vectors with a specified function. Higher similarity scores correspond to closer vectors.
        v1 - a vector
        v2 - another vector, of the same dimension
        the value of the similarity function applied to the two vectors