mirror of
https://github.com/pgvector/pgvector.git
synced 2026-06-06 05:51:21 +08:00
325 lines
5.7 KiB
Plaintext
325 lines
5.7 KiB
Plaintext
SELECT '{1:1,2:2,3:3}/3'::sparsevec < '{1:1,2:2,3:3}/3';
|
|
?column?
|
|
----------
|
|
f
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2,3:3}/3'::sparsevec < '{1:1,2:2}/2';
|
|
?column?
|
|
----------
|
|
f
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2,3:3}/3'::sparsevec <= '{1:1,2:2,3:3}/3';
|
|
?column?
|
|
----------
|
|
t
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2,3:3}/3'::sparsevec <= '{1:1,2:2}/2';
|
|
?column?
|
|
----------
|
|
f
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2,3:3}/3'::sparsevec = '{1:1,2:2,3:3}/3';
|
|
?column?
|
|
----------
|
|
t
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2,3:3}/3'::sparsevec = '{1:1,2:2}/2';
|
|
?column?
|
|
----------
|
|
f
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2,3:3}/3'::sparsevec != '{1:1,2:2,3:3}/3';
|
|
?column?
|
|
----------
|
|
f
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2,3:3}/3'::sparsevec != '{1:1,2:2}/2';
|
|
?column?
|
|
----------
|
|
t
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2,3:3}/3'::sparsevec >= '{1:1,2:2,3:3}/3';
|
|
?column?
|
|
----------
|
|
t
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2,3:3}/3'::sparsevec >= '{1:1,2:2}/2';
|
|
?column?
|
|
----------
|
|
t
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2,3:3}/3'::sparsevec > '{1:1,2:2,3:3}/3';
|
|
?column?
|
|
----------
|
|
f
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2,3:3}/3'::sparsevec > '{1:1,2:2}/2';
|
|
?column?
|
|
----------
|
|
t
|
|
(1 row)
|
|
|
|
SELECT sparsevec_cmp('{1:1,2:2,3:3}/3', '{1:1,2:2,3:3}/3');
|
|
sparsevec_cmp
|
|
---------------
|
|
0
|
|
(1 row)
|
|
|
|
SELECT sparsevec_cmp('{1:1,2:2,3:3}/3', '{}/3');
|
|
sparsevec_cmp
|
|
---------------
|
|
1
|
|
(1 row)
|
|
|
|
SELECT sparsevec_cmp('{}/3', '{1:1,2:2,3:3}/3');
|
|
sparsevec_cmp
|
|
---------------
|
|
-1
|
|
(1 row)
|
|
|
|
SELECT sparsevec_cmp('{1:1,2:2}/2', '{1:1,2:2,3:3}/3');
|
|
sparsevec_cmp
|
|
---------------
|
|
-1
|
|
(1 row)
|
|
|
|
SELECT sparsevec_cmp('{1:1,2:2,3:3}/3', '{1:1,2:2}/2');
|
|
sparsevec_cmp
|
|
---------------
|
|
1
|
|
(1 row)
|
|
|
|
SELECT sparsevec_cmp('{1:1,2:2}/2', '{1:2,2:3,3:4}/3');
|
|
sparsevec_cmp
|
|
---------------
|
|
-1
|
|
(1 row)
|
|
|
|
SELECT sparsevec_cmp('{1:2,2:3}/2', '{1:1,2:2,3:3}/3');
|
|
sparsevec_cmp
|
|
---------------
|
|
1
|
|
(1 row)
|
|
|
|
SELECT round(l2_norm('{1:1,2:1}/2'::sparsevec)::numeric, 5);
|
|
round
|
|
---------
|
|
1.41421
|
|
(1 row)
|
|
|
|
SELECT l2_norm('{1:3,2:4}/2'::sparsevec);
|
|
l2_norm
|
|
---------
|
|
5
|
|
(1 row)
|
|
|
|
SELECT l2_norm('{2:1}/2'::sparsevec);
|
|
l2_norm
|
|
---------
|
|
1
|
|
(1 row)
|
|
|
|
SELECT l2_norm('{1:3e37,2:4e37}/2'::sparsevec)::real;
|
|
l2_norm
|
|
---------
|
|
5e+37
|
|
(1 row)
|
|
|
|
SELECT l2_distance('{}/2'::sparsevec, '{1:3,2:4}/2');
|
|
l2_distance
|
|
-------------
|
|
5
|
|
(1 row)
|
|
|
|
SELECT l2_distance('{1:3}/2'::sparsevec, '{2:4}/2');
|
|
l2_distance
|
|
-------------
|
|
5
|
|
(1 row)
|
|
|
|
SELECT l2_distance('{2:4}/2'::sparsevec, '{1:3}/2');
|
|
l2_distance
|
|
-------------
|
|
5
|
|
(1 row)
|
|
|
|
SELECT l2_distance('{}/2'::sparsevec, '{2:1}/2');
|
|
l2_distance
|
|
-------------
|
|
1
|
|
(1 row)
|
|
|
|
SELECT '{}/2'::sparsevec <-> '{1:3,2:4}/2';
|
|
?column?
|
|
----------
|
|
5
|
|
(1 row)
|
|
|
|
SELECT inner_product('{1:1,2:2}/2'::sparsevec, '{1:2,2:4}/2');
|
|
inner_product
|
|
---------------
|
|
10
|
|
(1 row)
|
|
|
|
SELECT inner_product('{1:1,2:2}/2'::sparsevec, '{1:3}/1');
|
|
ERROR: different sparsevec dimensions 2 and 1
|
|
SELECT inner_product('{1:3e38}/1'::sparsevec, '{1:3e38}/1');
|
|
inner_product
|
|
---------------
|
|
Infinity
|
|
(1 row)
|
|
|
|
SELECT inner_product('{1:1,3:3,5:5}/5'::sparsevec, '{2:4,3:6,4:8}/5');
|
|
inner_product
|
|
---------------
|
|
18
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2}/2'::sparsevec <#> '{1:3,2:4}/2';
|
|
?column?
|
|
----------
|
|
-11
|
|
(1 row)
|
|
|
|
SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{1:2,2:4}/2');
|
|
cosine_distance
|
|
-----------------
|
|
0
|
|
(1 row)
|
|
|
|
SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{}/2');
|
|
cosine_distance
|
|
-----------------
|
|
NaN
|
|
(1 row)
|
|
|
|
SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:1,2:1}/2');
|
|
cosine_distance
|
|
-----------------
|
|
0
|
|
(1 row)
|
|
|
|
SELECT cosine_distance('{1:1}/2'::sparsevec, '{2:2}/2');
|
|
cosine_distance
|
|
-----------------
|
|
1
|
|
(1 row)
|
|
|
|
SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:-1,2:-1}/2');
|
|
cosine_distance
|
|
-----------------
|
|
2
|
|
(1 row)
|
|
|
|
SELECT cosine_distance('{1:2}/2'::sparsevec, '{2:2}/2');
|
|
cosine_distance
|
|
-----------------
|
|
1
|
|
(1 row)
|
|
|
|
SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{1:3}/1');
|
|
ERROR: different sparsevec dimensions 2 and 1
|
|
SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:1.1,2:1.1}/2');
|
|
cosine_distance
|
|
-----------------
|
|
0
|
|
(1 row)
|
|
|
|
SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:-1.1,2:-1.1}/2');
|
|
cosine_distance
|
|
-----------------
|
|
2
|
|
(1 row)
|
|
|
|
SELECT cosine_distance('{1:3e38}/1'::sparsevec, '{1:3e38}/1');
|
|
cosine_distance
|
|
-----------------
|
|
NaN
|
|
(1 row)
|
|
|
|
SELECT cosine_distance('{}/1'::sparsevec, '{}/1');
|
|
cosine_distance
|
|
-----------------
|
|
NaN
|
|
(1 row)
|
|
|
|
SELECT '{1:1,2:2}/2'::sparsevec <=> '{1:2,2:4}/2';
|
|
?column?
|
|
----------
|
|
0
|
|
(1 row)
|
|
|
|
SELECT l1_distance('{}/2'::sparsevec, '{1:3,2:4}/2');
|
|
l1_distance
|
|
-------------
|
|
7
|
|
(1 row)
|
|
|
|
SELECT l1_distance('{}/2'::sparsevec, '{2:1}/2');
|
|
l1_distance
|
|
-------------
|
|
1
|
|
(1 row)
|
|
|
|
SELECT l1_distance('{1:1,2:2}/2'::sparsevec, '{1:3}/1');
|
|
ERROR: different sparsevec dimensions 2 and 1
|
|
SELECT l1_distance('{1:3e38}/1'::sparsevec, '{1:-3e38}/1');
|
|
l1_distance
|
|
-------------
|
|
Infinity
|
|
(1 row)
|
|
|
|
SELECT l1_distance('{1:1,3:3,5:5,7:7}/8'::sparsevec, '{2:2,4:4,6:6,8:8}/8');
|
|
l1_distance
|
|
-------------
|
|
36
|
|
(1 row)
|
|
|
|
SELECT l1_distance('{1:1,3:3,5:5,7:7,9:9}/9'::sparsevec, '{2:2,4:4,6:6,8:8}/9');
|
|
l1_distance
|
|
-------------
|
|
45
|
|
(1 row)
|
|
|
|
SELECT l2_normalize('{1:3,2:4}/2'::sparsevec);
|
|
l2_normalize
|
|
-----------------
|
|
{1:0.6,2:0.8}/2
|
|
(1 row)
|
|
|
|
SELECT l2_normalize('{1:3}/2'::sparsevec);
|
|
l2_normalize
|
|
--------------
|
|
{1:1}/2
|
|
(1 row)
|
|
|
|
SELECT l2_normalize('{2:0.1}/2'::sparsevec);
|
|
l2_normalize
|
|
--------------
|
|
{2:1}/2
|
|
(1 row)
|
|
|
|
SELECT l2_normalize('{}/2'::sparsevec);
|
|
l2_normalize
|
|
--------------
|
|
{}/2
|
|
(1 row)
|
|
|
|
SELECT l2_normalize('{1:3e38}/1'::sparsevec);
|
|
l2_normalize
|
|
--------------
|
|
{1:1}/1
|
|
(1 row)
|
|
|