ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

PostgreSQL pgvector Windows 安装实操:不另建向量库,跑通第一次向量搜索

PostgreSQL pgvector Windows 安装实操:不另建向量库,跑通第一次向量搜索 PostgreSQL pgvector Windows 安装实操不另建向量库跑通第一次向量搜索【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvectorpgvector 给 PostgreSQL 加上了向量相似性搜索向量数据直接和业务表存在同一个库里。读完这篇你能在 Windows 上完成 pgvector 的部署并用 3 条 SQL 验证最近邻检索真的可用。先选路预编译包还是源码决策规则很简单新手和大多数生产场景直接用预编译包十分钟搞定只有当你需要特定版本、或者要改源码时才走源码编译这条路。主流程预编译包安装以管理员身份打开命令提示符先确认环境。C:\ postgres --version输出版本号在 13 及以上即可本文以 PostgreSQL 16 为例。顺手看一眼系统盘剩余空间预留 1GB 以上。这步成功的标志版本号和磁盘空间都满足要求。把编译好的vector.dll拷进 PostgreSQL 的 lib 目录。copy vector.dll C:\Program Files\PostgreSQL\16\lib\把vector.control和全部vector--*.sql脚本拷进扩展目录。copy vector.control C:\Program Files\PostgreSQL\16\share\extension\ copy vector--*.sql C:\Program Files\PostgreSQL\16\share\extension\注意 sql 脚本的落点是share\extension不是share放错目录后面会报找不到控制文件的错。文件就位后扩展就具备创建条件了。重启 PostgreSQL 服务。net stop postgresql-x64-16 net start postgresql-x64-16服务名里的版本号按你的安装调整也可以在 services.msc 里找到对应服务右键重启。连进数据库建扩展。psql -U postgresCREATE EXTENSION vector;没有报错、命令返回CREATE EXTENSION说明加载成功。备选源码编译这条路线只在需要指定版本或二次开发时用。关键步骤与主流程的差异如下不用普通 cmd用管理员身份打开 Visual Studio 的 x64 Native Tools Command Prompt保证编译器和 C 工具链就位。在命令行内设置 PostgreSQL 安装路径set PGROOTC:\Program Files\PostgreSQL\16拉取代码并编译安装cd %TEMP% git clone --branch v0.8.6 https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector nmake /F Makefile.win nmake /F Makefile.win installinstall目标会自动把vector.dll、vector.control和 sql 脚本拷进对应目录第 2、3 步的手动复制可以省掉之后同样重启服务、建扩展。验收3 条 SQL 证明功能可用建一张最小的向量表写入两条测试数据再按 L2 距离做一次最近邻查询CREATE TABLE product_embeddings ( id SERIAL PRIMARY KEY, embedding vector(3), label text ); INSERT INTO product_embeddings (embedding, label) VALUES ([1, 2, 3], keyboard), ([4, 5, 6], mouse); SELECT label, l2_distance(embedding, [3, 1, 2]) AS distance FROM product_embeddings ORDER BY distance LIMIT 2;预期输出label | distance -------------------- keyboard | 2.45 mouse | 5.74keyboard 排第一说明距离计算和排序都正常pgvector 已可投入使用。避坑Windows 用户最常卡住的 3 处报could not open extension control file→vector.control没放进share\extension多半落错了层级的share目录 → 按第 3 步的路径重新放置再重启服务。报could not load library vector.dll→ dll 与 PostgreSQL 架构不匹配或没拷进lib目录 → 确认用的是 64 位编译产物且文件在C:\Program Files\PostgreSQL\16\lib。nmake 提示 PGROOT is not set→ 编译前没在命令行里设置环境变量 → 在 x64 Native Tools 提示符里先执行set PGROOT...再跑 nmake。装完后索引与内存数据量上来后全表扫描的查询会慢。给向量列建 pgvector HNSW 索引CREATE INDEX ON product_embeddings USING hnsw (embedding vector_l2_ops);几千行以上、且最近邻查询是高频操作时HNSW 是首选索引类型几百行的表直接裸查就行不用建。内存方面shared_buffers和work_mem按机器实际情况上调即可具体取值建议参考 PostgreSQL 官方文档的调优章节。到这里文本 embedding 可以直接进业务库做相似检索用户行为向量也能为个性化推荐供数不用再单独搭一套向量数据库。后续版本升级时仓库 sql/ 目录里带全套跨版本脚本一条ALTER EXTENSION vector UPDATE;就能完成迁移升级前先在测试库跑一遍验证。【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进