Exact Metric and Operator Matrix

This file is generated from docs/user_guide/metric_operator_matrix.data. Run scripts/generate-metric-operator-matrix.sh after changing the source data.

Each row identifies the exact framework-free kernel, its SQL-facing operator or helper, and its score direction. Operators apply only to like representations. Definitions and edge-case behavior are pinned in Metric Semantics.

Representation Metric Exact core operator SQL operator Order for nearest-first search Current SQL lifecycle
dense L2 DistanceMetric::L2::distance <-> ascending distance stable
dense Inner product DistanceMetric::InnerProduct::distance inner_product helper descending raw similarity stable
dense Negative inner product DistanceMetric::NegativeInnerProduct::distance <#> ascending distance stable
dense Cosine distance DistanceMetric::Cosine::distance <=> ascending distance stable
dense L1 DistanceMetric::L1::distance <+> ascending distance stable
half L2 DistanceMetric::L2::distance_half <-> ascending distance experimental
half Inner product DistanceMetric::InnerProduct::distance_half halfvec_inner_product helper descending raw similarity experimental
half Negative inner product DistanceMetric::NegativeInnerProduct::distance_half <#> ascending distance experimental
half Cosine distance DistanceMetric::Cosine::distance_half <=> ascending distance experimental
half L1 DistanceMetric::L1::distance_half <+> ascending distance experimental
sparse L2 DistanceMetric::L2::distance_sparse <-> ascending distance experimental
sparse Inner product DistanceMetric::InnerProduct::distance_sparse sparsevec_inner_product helper descending raw similarity experimental
sparse Negative inner product DistanceMetric::NegativeInnerProduct::distance_sparse <#> ascending distance experimental
sparse Cosine distance DistanceMetric::Cosine::distance_sparse <=> ascending distance experimental
sparse L1 DistanceMetric::L1::distance_sparse <+> ascending distance experimental
bit Hamming BitVector::hamming_distance <~> ascending distance experimental
bit Jaccard distance BitVector::jaccard_distance <%> ascending distance experimental