向量数据类型概述
seekdb 提供向量数据类型以支撑 AI 向量搜索的相关应用。通过使用向量数据类型,你可以存储和查询一个浮点数组,例如 [0.1, 0.3, -0.9, ...]。使用向量数据前,您需要知道以下事项:
-
支持稠密和稀疏向量数据,其支持的数据元素均为单精度浮点数。
-
向量数据中的元素值不允许为非数值(NaN)和无穷大(Inf),否则抛出运行时错误。
-
在创建向量列时必须指定向量维度,例如
VECTOR(3)。 -
支持创建稠密/稀疏向量索引,具体请参见稠密向量索引。
-
seekdb 中的向量数据以数组的形式存储。
-
稠密/稀疏向量均支持混合搜索。
语法
一个稠密向量值可以包含 16000 以内任意数量的浮点数。语法如下:
-- 稠密向量
'[<float>, <float>, ...]'
稀疏向量基于 MAP 数据类型,包含无序的键值对。语法如下:
-- 稀疏向量
'{<uint:float>, <uint:float>...}'
创建向量列和索引示例如下:
-- 创建稠密向量列和索引
CREATE TABLE t1(
c1 INT,
c2 VECTOR(3),
PRIMARY KEY(c1),
VECTOR INDEX idx1(c2) WITH (distance=L2, type=hnsw)
);
-- 创建稀疏向量列
CREATE TABLE t2 (
c1 INT,
c2 SPARSEVECTOR
);