向量操作函数接口
向量操作函数实现的功能包括:向量大小比较、向量加法、向量减法、向量按位乘法等。
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]');