Package io.objectbox.model
Class HnswDistanceType
- java.lang.Object
-
- io.objectbox.model.HnswDistanceType
-
public final class HnswDistanceType extends java.lang.ObjectThe distance algorithm used by an HNSW index (vector search).
-
-
Field Summary
Fields Modifier and Type Field Description static shortCosineCosine similarity compares two vectors irrespective of their magnitude (compares the angle of two vectors).static shortDotProductFor normalized vectors (vector length == 1.0), the dot product is equivalent to the cosine similarity.static shortDotProductNonNormalizedA custom dot product similarity measure that does not require the vectors to be normalized.static shortEuclideanThe default; typically "Euclidean squared" internally.static shortGeoFor geospatial coordinates aka latitude/longitude pairs.static java.lang.String[]namesstatic shortUnknownNot a real type, just best practice (e.g.
-
Constructor Summary
Constructors Modifier Constructor Description privateHnswDistanceType()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.Stringname(int e)
-
-
-
Field Detail
-
Unknown
public static final short Unknown
Not a real type, just best practice (e.g. forward compatibility)- See Also:
- Constant Field Values
-
Euclidean
public static final short Euclidean
The default; typically "Euclidean squared" internally.- See Also:
- Constant Field Values
-
Cosine
public static final short Cosine
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)- See Also:
- Constant Field Values
-
DotProduct
public static final short DotProduct
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)- See Also:
- Constant Field Values
-
Geo
public static final short Geo
For geospatial coordinates aka latitude/longitude pairs. Note, that the vector dimension must be 2, with the latitude being the first element and longitude the second. Internally, this uses haversine distance.- See Also:
- Constant Field Values
-
DotProductNonNormalized
public static final short DotProductNonNormalized
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)- See Also:
- Constant Field Values
-
names
public static final java.lang.String[] names
-
-