postgresql安装pgvector插件、创建向量表及查询
·
postgres不但是瑞士军刀,还能安装各种插件,简直无敌,例如要支持向量数据库,安装pgvector插件即可。
环境
windows系统
已安装visual studio 生成工具 # 当然安装完整的社区版更好
已安装postgres # 这个不用说,必须的,路径:C:\Program Files\PostgreSQL\16
步骤
1、下载代码
git clone https://github.com/pgvector/pgvector.git
2、按win键搜索x64 Native Tools Command Prompt for VS
打开这个cmd窗口,当然要是知道具体的安装路径也可以在文件夹内直接打开cmd窗口。
进入pgvector的目录:
cd /d D:\code\pgvector-list\master\pgvector # 跨磁盘需要加 /d 否则过不去
设置postgres环境变量,否则它不知道postgres在哪:
set "PGROOT=C:\Program Files\PostgreSQL\16"
编译文件,完成后文件夹下或有个Makefile.win文件:
nmake /F Makefile.win
安装编译好的文件:
nmake /F Makefile.win install
3、验证
使用界面管理工具,pgAdmin或者dbeaver都可以,打开查询窗口,输入:
创建vector插件:
CREATE EXTENSION vector;
查询:
SELECT '[1,2,3]'::vector <-> '[4,5,6]'::vector AS distance;
如果输出结果类似5.196152422706632这样的值,说明成功了。
测试功能-创建向量表及查询
这个作为扩展吧。
-- 创建一个包含向量列的表
CREATE TABLE items (
id bigserial PRIMARY KEY, -- 主键 ID
content text, -- 存储文本内容
embedding vector(3) -- 存储向量数据,(3) 代表 3 维向量
);
-- 插入几条测试数据
INSERT INTO items (content, embedding)
VALUES
('苹果', '[1, 1, 0]'),
('香蕉', '[1.2, 0.8, 0.1]'),
('猫', '[6, 0.4, 5]');
SELECT
content,
1 - (embedding <=> '[1, 1, 0]') AS similarity_score
FROM items
ORDER BY embedding <=> '[1, 1, 0]'
LIMIT 5;
SELECT
content,
1 - (embedding <=> '[1, 1, 0]') AS similarity_score
FROM items
ORDER BY embedding <=> '[1, 1, 0]'
LIMIT 5;
-- 为 embedding 列创建 HNSW 索引,使用余弦距离运算
CREATE INDEX ON items USING hnsw (embedding vector_cosine_ops);
更多推荐



所有评论(0)