高维向量相似度搜索(vector) 本小节主要介绍RDSPostgreSQL的vector插件使用方法。 操作场景 RDSPostgreSQL支持 vector插件,提供了一个新的数据类型,能够存储向量类型数据,并实现向量相似度匹配,为AI产品提供底层数据支持。 前提条件 请确保您的实例内核大版本满足,本插件所支持的内核版本,请参考支持的版本插件列表。 插件使用 安装插件 sql CREATE EXTENSION IF NOT EXISTS vector; 卸载插件 sql DROP EXTENSION IF EXISTS vector; 使用示例 数据存储&查询 创建具有3维的向量列 sql CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3)); 插入向量 sql INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]'); 通过L2距离得到最近邻 sql SELECT FROM items ORDER BY embedding '[3,1,2]'; 通过余弦距离得到最近邻 sql SELECT FROM items ORDER BY embedding '[3,1,2]'; 通过内积得到最近邻, 返回的是负内积,因为Postgres只支持运算符上的ASC顺序索引扫描 sql SELECT FROM items ORDER BY embedding '[3,1,2]'; 距离计算 sql SELECT embedding '[3,1,2]' AS distance FROM items; SELECT (embedding '[3,1,2]') 1 AS innerproduct FROM items; SELECT 1 (embedding '[3,1,2]') AS cosinesimilarity FROM items;