mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-06 12:40:56 +08:00
Added more tests [skip ci]
This commit is contained in:
@@ -38,6 +38,26 @@ SELECT * FROM t ORDER BY val;
|
|||||||
|
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
|
DROP TABLE t;
|
||||||
|
-- minivec
|
||||||
|
CREATE TABLE t (val minivec(3));
|
||||||
|
INSERT INTO t (val) VALUES ('[0,0,0]'), ('[1,2,3]'), ('[1,1,1]'), (NULL);
|
||||||
|
CREATE INDEX ON t (val);
|
||||||
|
SELECT * FROM t WHERE val = '[1,2,3]';
|
||||||
|
val
|
||||||
|
---------
|
||||||
|
[1,2,3]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT * FROM t ORDER BY val;
|
||||||
|
val
|
||||||
|
---------
|
||||||
|
[0,0,0]
|
||||||
|
[1,1,1]
|
||||||
|
[1,2,3]
|
||||||
|
|
||||||
|
(4 rows)
|
||||||
|
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
-- sparsevec
|
-- sparsevec
|
||||||
CREATE TABLE t (val sparsevec(3));
|
CREATE TABLE t (val sparsevec(3));
|
||||||
|
|||||||
@@ -38,7 +38,15 @@ INSERT INTO t (val) VALUES ('[0,0,0]'), ('[1,2,3]'), ('[1,1,1]'), (NULL);
|
|||||||
CREATE TABLE t2 (val minivec(3));
|
CREATE TABLE t2 (val minivec(3));
|
||||||
\copy t TO 'results/minivec.bin' WITH (FORMAT binary)
|
\copy t TO 'results/minivec.bin' WITH (FORMAT binary)
|
||||||
\copy t2 FROM 'results/minivec.bin' WITH (FORMAT binary)
|
\copy t2 FROM 'results/minivec.bin' WITH (FORMAT binary)
|
||||||
--SELECT * FROM t2 ORDER BY val;
|
SELECT * FROM t2 ORDER BY val;
|
||||||
|
val
|
||||||
|
---------
|
||||||
|
[0,0,0]
|
||||||
|
[1,1,1]
|
||||||
|
[1,2,3]
|
||||||
|
|
||||||
|
(4 rows)
|
||||||
|
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
-- sparsevec
|
-- sparsevec
|
||||||
|
|||||||
@@ -168,6 +168,202 @@ SELECT '{"[1,2,3]"}'::minivec(2)[];
|
|||||||
{"[1,2,3]"}
|
{"[1,2,3]"}
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec + '[4,5,6]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
[5,7,9]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[448]'::minivec + '[448]';
|
||||||
|
ERROR: value out of range: overflow
|
||||||
|
SELECT '[1,2]'::minivec + '[3]';
|
||||||
|
ERROR: different minivec dimensions 2 and 1
|
||||||
|
SELECT '[1,2,3]'::minivec - '[4,5,6]';
|
||||||
|
?column?
|
||||||
|
------------
|
||||||
|
[-3,-3,-3]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[-448]'::minivec - '[448]';
|
||||||
|
ERROR: value out of range: overflow
|
||||||
|
SELECT '[1,2]'::minivec - '[3]';
|
||||||
|
ERROR: different minivec dimensions 2 and 1
|
||||||
|
SELECT '[1,2,3]'::minivec * '[4,5,6]';
|
||||||
|
?column?
|
||||||
|
-----------
|
||||||
|
[4,10,18]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[448]'::minivec * '[448]';
|
||||||
|
ERROR: value out of range: overflow
|
||||||
|
SELECT '[1e-7]'::minivec * '[1e-7]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
[0]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2]'::minivec * '[3]';
|
||||||
|
ERROR: different minivec dimensions 2 and 1
|
||||||
|
SELECT '[1,2,3]'::minivec || '[4,5]';
|
||||||
|
?column?
|
||||||
|
-------------
|
||||||
|
[1,2,3,4,5]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT array_fill(0, ARRAY[16000])::minivec || '[1]';
|
||||||
|
ERROR: cannot cast type integer[] to minivec
|
||||||
|
LINE 1: SELECT array_fill(0, ARRAY[16000])::minivec || '[1]';
|
||||||
|
^
|
||||||
|
SELECT '[1,2,3]'::minivec < '[1,2,3]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec < '[1,2]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec <= '[1,2,3]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec <= '[1,2]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec = '[1,2,3]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec = '[1,2]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec != '[1,2,3]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec != '[1,2]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec >= '[1,2,3]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec >= '[1,2]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec > '[1,2,3]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec > '[1,2]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT minivec_cmp('[1,2,3]', '[1,2,3]');
|
||||||
|
minivec_cmp
|
||||||
|
-------------
|
||||||
|
0
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT minivec_cmp('[1,2,3]', '[0,0,0]');
|
||||||
|
minivec_cmp
|
||||||
|
-------------
|
||||||
|
1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT minivec_cmp('[0,0,0]', '[1,2,3]');
|
||||||
|
minivec_cmp
|
||||||
|
-------------
|
||||||
|
-1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT minivec_cmp('[1,2]', '[1,2,3]');
|
||||||
|
minivec_cmp
|
||||||
|
-------------
|
||||||
|
-1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT minivec_cmp('[1,2,3]', '[1,2]');
|
||||||
|
minivec_cmp
|
||||||
|
-------------
|
||||||
|
1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT minivec_cmp('[1,2]', '[2,3,4]');
|
||||||
|
minivec_cmp
|
||||||
|
-------------
|
||||||
|
-1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT minivec_cmp('[2,3]', '[1,2,3]');
|
||||||
|
minivec_cmp
|
||||||
|
-------------
|
||||||
|
1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT vector_dims('[1,2,3]'::minivec);
|
||||||
|
vector_dims
|
||||||
|
-------------
|
||||||
|
3
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT round(l2_norm('[1,1]'::minivec)::numeric, 5);
|
||||||
|
round
|
||||||
|
---------
|
||||||
|
1.41421
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l2_norm('[3,4]'::minivec);
|
||||||
|
l2_norm
|
||||||
|
---------
|
||||||
|
5
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l2_norm('[0,1]'::minivec);
|
||||||
|
l2_norm
|
||||||
|
---------
|
||||||
|
1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l2_norm('[0,0]'::minivec);
|
||||||
|
l2_norm
|
||||||
|
---------
|
||||||
|
0
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l2_norm('[2]'::minivec);
|
||||||
|
l2_norm
|
||||||
|
---------
|
||||||
|
2
|
||||||
|
(1 row)
|
||||||
|
|
||||||
SELECT l2_distance('[0,0]'::minivec, '[3,4]');
|
SELECT l2_distance('[0,0]'::minivec, '[3,4]');
|
||||||
l2_distance
|
l2_distance
|
||||||
-------------
|
-------------
|
||||||
@@ -194,3 +390,209 @@ SELECT '[0,0]'::minivec <-> '[3,4]';
|
|||||||
5
|
5
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
SELECT inner_product('[1,2]'::minivec, '[3,4]');
|
||||||
|
inner_product
|
||||||
|
---------------
|
||||||
|
11
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT inner_product('[1,2]'::minivec, '[3]');
|
||||||
|
ERROR: different minivec dimensions 2 and 1
|
||||||
|
SELECT inner_product('[448]'::minivec, '[448]');
|
||||||
|
inner_product
|
||||||
|
---------------
|
||||||
|
200704
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT inner_product('[1,1,1,1,1,1,1,1,1]'::minivec, '[1,2,3,4,5,6,7,8,9]');
|
||||||
|
inner_product
|
||||||
|
---------------
|
||||||
|
45
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2]'::minivec <#> '[3,4]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
-11
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT cosine_distance('[1,2]'::minivec, '[2,4]');
|
||||||
|
cosine_distance
|
||||||
|
-----------------
|
||||||
|
0
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT cosine_distance('[1,2]'::minivec, '[0,0]');
|
||||||
|
cosine_distance
|
||||||
|
-----------------
|
||||||
|
NaN
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT cosine_distance('[1,1]'::minivec, '[1,1]');
|
||||||
|
cosine_distance
|
||||||
|
-----------------
|
||||||
|
0
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT cosine_distance('[1,0]'::minivec, '[0,2]');
|
||||||
|
cosine_distance
|
||||||
|
-----------------
|
||||||
|
1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT cosine_distance('[1,1]'::minivec, '[-1,-1]');
|
||||||
|
cosine_distance
|
||||||
|
-----------------
|
||||||
|
2
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT cosine_distance('[1,2]'::minivec, '[3]');
|
||||||
|
ERROR: different minivec dimensions 2 and 1
|
||||||
|
SELECT cosine_distance('[1,1]'::minivec, '[1.1,1.1]');
|
||||||
|
cosine_distance
|
||||||
|
-----------------
|
||||||
|
0
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT cosine_distance('[1,1]'::minivec, '[-1.1,-1.1]');
|
||||||
|
cosine_distance
|
||||||
|
-----------------
|
||||||
|
2
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT cosine_distance('[1,2,3,4,5,6,7,8,9]'::minivec, '[1,2,3,4,5,6,7,8,9]');
|
||||||
|
cosine_distance
|
||||||
|
-----------------
|
||||||
|
0
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT cosine_distance('[1,2,3,4,5,6,7,8,9]'::minivec, '[-1,-2,-3,-4,-5,-6,-7,-8,-9]');
|
||||||
|
cosine_distance
|
||||||
|
-----------------
|
||||||
|
2
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[1,2]'::minivec <=> '[2,4]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
0
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l1_distance('[0,0]'::minivec, '[3,4]');
|
||||||
|
l1_distance
|
||||||
|
-------------
|
||||||
|
7
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l1_distance('[0,0]'::minivec, '[0,1]');
|
||||||
|
l1_distance
|
||||||
|
-------------
|
||||||
|
1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l1_distance('[1,2]'::minivec, '[3]');
|
||||||
|
ERROR: different minivec dimensions 2 and 1
|
||||||
|
SELECT l1_distance('[1,2,3,4,5,6,7,8,9]'::minivec, '[1,2,3,4,5,6,7,8,9]');
|
||||||
|
l1_distance
|
||||||
|
-------------
|
||||||
|
0
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l1_distance('[1,2,3,4,5,6,7,8,9]'::minivec, '[0,3,2,5,4,7,6,9,8]');
|
||||||
|
l1_distance
|
||||||
|
-------------
|
||||||
|
9
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT '[0,0]'::minivec <+> '[3,4]';
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
7
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l2_normalize('[3,4]'::minivec);
|
||||||
|
l2_normalize
|
||||||
|
----------------
|
||||||
|
[0.625,0.8125]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l2_normalize('[3,0]'::minivec);
|
||||||
|
l2_normalize
|
||||||
|
--------------
|
||||||
|
[1,0]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l2_normalize('[0,0.1]'::minivec);
|
||||||
|
l2_normalize
|
||||||
|
--------------
|
||||||
|
[0,1]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l2_normalize('[0,0]'::minivec);
|
||||||
|
l2_normalize
|
||||||
|
--------------
|
||||||
|
[0,0]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT l2_normalize('[448]'::minivec);
|
||||||
|
l2_normalize
|
||||||
|
--------------
|
||||||
|
[1]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT binary_quantize('[1,0,-1]'::minivec);
|
||||||
|
binary_quantize
|
||||||
|
-----------------
|
||||||
|
100
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT binary_quantize('[0,0.1,-0.2,-0.3,0.4,0.5,0.6,-0.7,0.8,-0.9,1]'::minivec);
|
||||||
|
binary_quantize
|
||||||
|
-----------------
|
||||||
|
01001110101
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 1, 3);
|
||||||
|
subvector
|
||||||
|
-----------
|
||||||
|
[1,2,3]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 3, 2);
|
||||||
|
subvector
|
||||||
|
-----------
|
||||||
|
[3,4]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, -1, 3);
|
||||||
|
subvector
|
||||||
|
-----------
|
||||||
|
[1]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 3, 9);
|
||||||
|
subvector
|
||||||
|
-----------
|
||||||
|
[3,4,5]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 1, 0);
|
||||||
|
ERROR: minivec must have at least 1 dimension
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 3, -1);
|
||||||
|
ERROR: minivec must have at least 1 dimension
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, -1, 2);
|
||||||
|
ERROR: minivec must have at least 1 dimension
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 2147483647, 10);
|
||||||
|
ERROR: minivec must have at least 1 dimension
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 3, 2147483647);
|
||||||
|
subvector
|
||||||
|
-----------
|
||||||
|
[3,4,5]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, -2147483644, 2147483647);
|
||||||
|
subvector
|
||||||
|
-----------
|
||||||
|
[1,2]
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
|||||||
@@ -37,8 +37,98 @@ SELECT '[1,2,3]'::minivec(16001);
|
|||||||
SELECT unnest('{"[1,2,3]", "[4,5,6]"}'::minivec[]);
|
SELECT unnest('{"[1,2,3]", "[4,5,6]"}'::minivec[]);
|
||||||
SELECT '{"[1,2,3]"}'::minivec(2)[];
|
SELECT '{"[1,2,3]"}'::minivec(2)[];
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec + '[4,5,6]';
|
||||||
|
SELECT '[448]'::minivec + '[448]';
|
||||||
|
SELECT '[1,2]'::minivec + '[3]';
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec - '[4,5,6]';
|
||||||
|
SELECT '[-448]'::minivec - '[448]';
|
||||||
|
SELECT '[1,2]'::minivec - '[3]';
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec * '[4,5,6]';
|
||||||
|
SELECT '[448]'::minivec * '[448]';
|
||||||
|
SELECT '[1e-7]'::minivec * '[1e-7]';
|
||||||
|
SELECT '[1,2]'::minivec * '[3]';
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec || '[4,5]';
|
||||||
|
SELECT array_fill(0, ARRAY[16000])::minivec || '[1]';
|
||||||
|
|
||||||
|
SELECT '[1,2,3]'::minivec < '[1,2,3]';
|
||||||
|
SELECT '[1,2,3]'::minivec < '[1,2]';
|
||||||
|
SELECT '[1,2,3]'::minivec <= '[1,2,3]';
|
||||||
|
SELECT '[1,2,3]'::minivec <= '[1,2]';
|
||||||
|
SELECT '[1,2,3]'::minivec = '[1,2,3]';
|
||||||
|
SELECT '[1,2,3]'::minivec = '[1,2]';
|
||||||
|
SELECT '[1,2,3]'::minivec != '[1,2,3]';
|
||||||
|
SELECT '[1,2,3]'::minivec != '[1,2]';
|
||||||
|
SELECT '[1,2,3]'::minivec >= '[1,2,3]';
|
||||||
|
SELECT '[1,2,3]'::minivec >= '[1,2]';
|
||||||
|
SELECT '[1,2,3]'::minivec > '[1,2,3]';
|
||||||
|
SELECT '[1,2,3]'::minivec > '[1,2]';
|
||||||
|
|
||||||
|
SELECT minivec_cmp('[1,2,3]', '[1,2,3]');
|
||||||
|
SELECT minivec_cmp('[1,2,3]', '[0,0,0]');
|
||||||
|
SELECT minivec_cmp('[0,0,0]', '[1,2,3]');
|
||||||
|
SELECT minivec_cmp('[1,2]', '[1,2,3]');
|
||||||
|
SELECT minivec_cmp('[1,2,3]', '[1,2]');
|
||||||
|
SELECT minivec_cmp('[1,2]', '[2,3,4]');
|
||||||
|
SELECT minivec_cmp('[2,3]', '[1,2,3]');
|
||||||
|
|
||||||
|
SELECT vector_dims('[1,2,3]'::minivec);
|
||||||
|
|
||||||
|
SELECT round(l2_norm('[1,1]'::minivec)::numeric, 5);
|
||||||
|
SELECT l2_norm('[3,4]'::minivec);
|
||||||
|
SELECT l2_norm('[0,1]'::minivec);
|
||||||
|
SELECT l2_norm('[0,0]'::minivec);
|
||||||
|
SELECT l2_norm('[2]'::minivec);
|
||||||
|
|
||||||
SELECT l2_distance('[0,0]'::minivec, '[3,4]');
|
SELECT l2_distance('[0,0]'::minivec, '[3,4]');
|
||||||
SELECT l2_distance('[0,0]'::minivec, '[0,1]');
|
SELECT l2_distance('[0,0]'::minivec, '[0,1]');
|
||||||
SELECT l2_distance('[1,2]'::minivec, '[3]');
|
SELECT l2_distance('[1,2]'::minivec, '[3]');
|
||||||
SELECT l2_distance('[1,1,1,1,1,1,1,1,1]'::minivec, '[1,1,1,1,1,1,1,4,5]');
|
SELECT l2_distance('[1,1,1,1,1,1,1,1,1]'::minivec, '[1,1,1,1,1,1,1,4,5]');
|
||||||
SELECT '[0,0]'::minivec <-> '[3,4]';
|
SELECT '[0,0]'::minivec <-> '[3,4]';
|
||||||
|
|
||||||
|
SELECT inner_product('[1,2]'::minivec, '[3,4]');
|
||||||
|
SELECT inner_product('[1,2]'::minivec, '[3]');
|
||||||
|
SELECT inner_product('[448]'::minivec, '[448]');
|
||||||
|
SELECT inner_product('[1,1,1,1,1,1,1,1,1]'::minivec, '[1,2,3,4,5,6,7,8,9]');
|
||||||
|
SELECT '[1,2]'::minivec <#> '[3,4]';
|
||||||
|
|
||||||
|
SELECT cosine_distance('[1,2]'::minivec, '[2,4]');
|
||||||
|
SELECT cosine_distance('[1,2]'::minivec, '[0,0]');
|
||||||
|
SELECT cosine_distance('[1,1]'::minivec, '[1,1]');
|
||||||
|
SELECT cosine_distance('[1,0]'::minivec, '[0,2]');
|
||||||
|
SELECT cosine_distance('[1,1]'::minivec, '[-1,-1]');
|
||||||
|
SELECT cosine_distance('[1,2]'::minivec, '[3]');
|
||||||
|
SELECT cosine_distance('[1,1]'::minivec, '[1.1,1.1]');
|
||||||
|
SELECT cosine_distance('[1,1]'::minivec, '[-1.1,-1.1]');
|
||||||
|
SELECT cosine_distance('[1,2,3,4,5,6,7,8,9]'::minivec, '[1,2,3,4,5,6,7,8,9]');
|
||||||
|
SELECT cosine_distance('[1,2,3,4,5,6,7,8,9]'::minivec, '[-1,-2,-3,-4,-5,-6,-7,-8,-9]');
|
||||||
|
SELECT '[1,2]'::minivec <=> '[2,4]';
|
||||||
|
|
||||||
|
SELECT l1_distance('[0,0]'::minivec, '[3,4]');
|
||||||
|
SELECT l1_distance('[0,0]'::minivec, '[0,1]');
|
||||||
|
SELECT l1_distance('[1,2]'::minivec, '[3]');
|
||||||
|
SELECT l1_distance('[1,2,3,4,5,6,7,8,9]'::minivec, '[1,2,3,4,5,6,7,8,9]');
|
||||||
|
SELECT l1_distance('[1,2,3,4,5,6,7,8,9]'::minivec, '[0,3,2,5,4,7,6,9,8]');
|
||||||
|
SELECT '[0,0]'::minivec <+> '[3,4]';
|
||||||
|
|
||||||
|
SELECT l2_normalize('[3,4]'::minivec);
|
||||||
|
SELECT l2_normalize('[3,0]'::minivec);
|
||||||
|
SELECT l2_normalize('[0,0.1]'::minivec);
|
||||||
|
SELECT l2_normalize('[0,0]'::minivec);
|
||||||
|
SELECT l2_normalize('[448]'::minivec);
|
||||||
|
|
||||||
|
SELECT binary_quantize('[1,0,-1]'::minivec);
|
||||||
|
SELECT binary_quantize('[0,0.1,-0.2,-0.3,0.4,0.5,0.6,-0.7,0.8,-0.9,1]'::minivec);
|
||||||
|
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 1, 3);
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 3, 2);
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, -1, 3);
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 3, 9);
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 1, 0);
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 3, -1);
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, -1, 2);
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 2147483647, 10);
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, 3, 2147483647);
|
||||||
|
SELECT subvector('[1,2,3,4,5]'::minivec, -2147483644, 2147483647);
|
||||||
|
|||||||
Reference in New Issue
Block a user