HnswDistanceType

public enum HnswDistanceType : UInt16

The distance algorithm used by an HNSW index (vector search).

  • T

    Undocumented

    Declaration

    Swift

    public typealias T = UInt16
  • Undocumented

    Declaration

    Swift

    public static var byteSize: Int { get }
  • Undocumented

    Declaration

    Swift

    public var value: UInt16 { get }
  • Not a real type, just best practice (e.g. forward compatibility)

    Declaration

    Swift

    case unknown = 0
  • The default; typically “Euclidean squared” internally.

    Declaration

    Swift

    case euclidean = 1
  • Cosine similarity compares two vectors irrespective of their magnitude (compares the angle of two vectors). Often used for document or semantic similarity. Value range: 0.0 - 2.0 (0.0: same direction, 1.0: orthogonal, 2.0: opposite direction)

    Declaration

    Swift

    case cosine = 2
  • For normalized vectors (vector length == 1.0), the dot product is equivalent to the cosine similarity. Because of this, the dot product is often preferred as it performs better. Value range (normalized vectors): 0.0 - 2.0 (0.0: same direction, 1.0: orthogonal, 2.0: opposite direction)

    Declaration

    Swift

    case dotProduct = 3
  • A custom dot product similarity measure that does not require the vectors to be normalized. Note: this is no replacement for cosine similarity (like DotProduct for normalized vectors is). The non-linear conversion provides a high precision over the entire float range (for the raw dot product). The higher the dot product, the lower the distance is (the nearer the vectors are). The more negative the dot product, the higher the distance is (the farther the vectors are). Value range: 0.0 - 2.0 (nonlinear; 0.0: nearest, 1.0: orthogonal, 2.0: farthest)

    Declaration

    Swift

    case dotProductNonNormalized = 10
  • max

    Undocumented

    Declaration

    Swift

    public static var max: HnswDistanceType { get }
  • min

    Undocumented

    Declaration

    Swift

    public static var min: HnswDistanceType { get }