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);
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐