更新时间:2024-06-03 GMT+08:00

向量操作函数接口

向量操作函数实现的功能包括:向量大小比较、向量加法、向量减法、向量按位乘法等。

inner_product

功能说明:计算两个向量的内积。

入参1的类型:floatvector

入参2的类型:floatvector

出参类型:float8

代码示例

gaussdb=# SELECT inner_product(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]'));
gaussdb=# SELECT inner_product('[1,2,3]', '[5,-1,3.5]');

vector_negative_inner_product

功能说明:计算两个向量的负内积。

入参1的类型:floatvector

入参2的类型:floatvector

出参类型:float8

代码示例

gaussdb=# SELECT vector_negative_inner_product(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]'));
gaussdb=# SELECT vector_negative_inner_product('[1,2,3]', '[5,-1,3.5]');

vector_dims

功能说明:返回floatvector向量的维度值。

入参类型:floatvector

出参类型:int4

代码示例

gaussdb=# SELECT vector_dims(floatvector('[1,2,3]'));
gaussdb=# SELECT vector_dims('[1,2,3]');

vector_norm

功能说明:返回向量的L2范数。

入参类型:floatvector

出参类型:float8

代码示例

gaussdb=# SELECT vector_norm(floatvector('[1,2,3]'));
gaussdb=# SELECT vector_norm('[1,2,3]');

vector_add

功能说明:计算两个向量相加。

入参1的类型:floatvector

入参2的类型:floatvector

出参类型:floatvector

代码示例

gaussdb=# SELECT vector_add(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]'));
gaussdb=# SELECT vector_add('[1,2,3]', '[5,-1,3.5]');

vector_sub

功能说明:计算两个向量相减。

入参1的类型:floatvector

入参2的类型:floatvector

出参类型:floatvector

代码示例

gaussdb=# SELECT vector_sub(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]'));
gaussdb=# SELECT vector_sub('[1,2,3]', '[5,-1,3.5]');

vector_lt

功能说明:比较向量大小,向量1是否小于向量2。

入参1的类型:floatvector

入参2的类型:floatvector

出参类型:BOOLEAN

代码示例

gaussdb=# SELECT vector_lt(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]'));
gaussdb=# SELECT vector_lt('[1,2,3]', '[5,-1,3.5]');

vector_le

功能说明:比较向量大小,向量1是否小于等于向量2。

入参1的类型:floatvector

入参2的类型:floatvector

出参类型:BOOLEAN

代码示例

gaussdb=# SELECT vector_le(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]'));
gaussdb=# SELECT vector_le('[1,2,3]', '[5,-1,3.5]');

vector_eq

功能说明:比较向量是否相等。

入参1的类型:floatvector

入参2的类型:floatvector

出参类型:BOOLEAN

代码示例

gaussdb=# SELECT vector_eq(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]'));
gaussdb=# SELECT vector_eq('[1,2,3]', '[5,-1,3.5]');

vector_ne

功能说明:比较两个向量是否不等。

入参1的类型:floatvector

入参2的类型:floatvector

出参类型:BOOLEAN

代码示例

gaussdb=# SELECT vector_ne(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]'));
gaussdb=# SELECT vector_ne('[1,2,3]', '[5,-1,3.5]');

vector_ge

功能说明:比较向量大小,向量1是否大于等于向量2。

入参1的类型:floatvector

入参2的类型:floatvector

出参类型:BOOLEAN

代码示例

gaussdb=# SELECT vector_ge(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]'));
gaussdb=# SELECT vector_ge('[1,2,3]', '[5,-1,3.5]');

vector_gt

功能说明:比较向量大小,向量1是否大于向量2。

入参1的类型:floatvector

入参2的类型:floatvector

出参类型:BOOLEAN

代码示例

gaussdb=# SELECT vector_gt(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]'));
gaussdb=# SELECT vector_gt('[1,2,3]', '[5,-1,3.5]');

vector_cmp

功能说明:比较向量大小。

入参1的类型:floatvector

入参2的类型:floatvector

出参类型:int4

代码示例

gaussdb=# SELECT vector_cmp(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]'));
gaussdb=# SELECT vector_cmp('[1,2,3]', '[5,-1,3.5]');

vector_accum

功能说明:返回向量累加。

入参1的类型:anyarray

入参2的类型:floatvector

出参类型:anyarray

代码示例

--系统函数,不推荐使用,若需使用,数组元素类型必须为float8类型。
gaussdb=# SELECT vector_accum(array[cast(3 as float8),1,2,3],  floatvector('[5,-1,3.5]'));

vector_combine

功能说明:合并向量。

入参1的类型:anyarray

入参2的类型:anyarray

出参类型:anyarray

代码示例

--系统函数,不推荐使用,若需使用,数组元素类型必须为float8类型。
gaussdb=# SELECT vector_combine(array[cast(1 as float8),2,3], array[cast(1 as float8),2,3]);

vector_avg

功能说明:平均向量。

入参类型:anyarray

出参类型:floatvector

代码示例

--系统函数,不推荐使用,若需使用,数组元素类型必须为float8类型。
gaussdb=# SELECT vector_avg(array[cast(1 as float8),2,3]);

bool_vector_dims

功能说明:返回boolvector向量的维度值。

入参类型:boolvector

出参类型:int4

代码示例

gaussdb=# SELECT bool_vector_dims(boolvector('[1,1,1]'));

bool_vector_eq

功能说明:比较bool向量是否一致。

入参1的类型:boolvector

入参2的类型:boolvector

出参类型:BOOLEAN

代码示例

gaussdb=# SELECT bool_vector_eq(boolvector('[1,1,1]'), boolvector('[1,1,1]'));
gaussdb=# SELECT bool_vector_eq('[1,1,1]', '[1,1,1]');