mirror of
https://github.com/pgvector/pgvector.git
synced 2026-06-29 17:21:16 +08:00
Exclude zero vectors for cosine distance to be consistent with other types [skip ci]
This commit is contained in:
@@ -39,6 +39,9 @@ CREATE FUNCTION cosine_distance(intvec, intvec) RETURNS float8
|
||||
CREATE FUNCTION l1_distance(intvec, intvec) RETURNS float8
|
||||
AS 'MODULE_PATHNAME', 'intvec_l1_distance' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||
|
||||
CREATE FUNCTION l2_norm(intvec) RETURNS float8
|
||||
AS 'MODULE_PATHNAME', 'intvec_l2_norm' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||
|
||||
CREATE FUNCTION intvec_l2_squared_distance(intvec, intvec) RETURNS float8
|
||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||
|
||||
@@ -85,4 +88,5 @@ CREATE OPERATOR CLASS intvec_ip_ops
|
||||
CREATE OPERATOR CLASS intvec_cosine_ops
|
||||
FOR TYPE intvec USING hnsw AS
|
||||
OPERATOR 1 <=> (intvec, intvec) FOR ORDER BY float_ops,
|
||||
FUNCTION 1 cosine_distance(intvec, intvec);
|
||||
FUNCTION 1 cosine_distance(intvec, intvec),
|
||||
FUNCTION 2 l2_norm(intvec);
|
||||
|
||||
@@ -330,6 +330,9 @@ CREATE FUNCTION cosine_distance(intvec, intvec) RETURNS float8
|
||||
CREATE FUNCTION l1_distance(intvec, intvec) RETURNS float8
|
||||
AS 'MODULE_PATHNAME', 'intvec_l1_distance' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||
|
||||
CREATE FUNCTION l2_norm(intvec) RETURNS float8
|
||||
AS 'MODULE_PATHNAME', 'intvec_l2_norm' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||
|
||||
-- intvec private functions
|
||||
|
||||
CREATE FUNCTION intvec_l2_squared_distance(intvec, intvec) RETURNS float8
|
||||
@@ -386,4 +389,5 @@ CREATE OPERATOR CLASS intvec_ip_ops
|
||||
CREATE OPERATOR CLASS intvec_cosine_ops
|
||||
FOR TYPE intvec USING hnsw AS
|
||||
OPERATOR 1 <=> (intvec, intvec) FOR ORDER BY float_ops,
|
||||
FUNCTION 1 cosine_distance(intvec, intvec);
|
||||
FUNCTION 1 cosine_distance(intvec, intvec),
|
||||
FUNCTION 2 l2_norm(intvec);
|
||||
|
||||
Reference in New Issue
Block a user