pgvector Windows部署:源码编译装好PostgreSQL向量扩展,20分钟跑通HNSW相似查询

pgvector Windows部署:源码编译装好PostgreSQL向量扩展,20分钟跑通HNSW相似查询 pgvector Windows部署源码编译装好PostgreSQL向量扩展20分钟跑通HNSW相似查询【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvectorpgvector 是 PostgreSQL 的向量搜索扩展装好后 embedding 直接存在普通表里不用另起一套向量库。本文在 Windows 10/11 上完成 pgvector 安装与编译装好扩展、建出 HNSW 索引跑通第一条相似性查询。先看装好之后的样子装好之后的样子很具体一张普通表存放 embedding配一个 HNSW 索引相似检索就是一条 SQL。CREATE TABLE docs ( id int, title text, embedding vector(384) ); CREATE INDEX ON docs USING hnsw (embedding); SELECT title FROM docs ORDER BY embedding - [0.01, 0.02, 0.03, ...]::vector LIMIT 10;最后这条语句按距离排序取前 10 行返回的就是最相似的结果全程无需维护独立的向量数据库查询直接写在业务 SQL 里。开工前四项核对四样东西占齐再动手缺任何一项后面的编译环节都会卡住组件版本要求它在这套流程里的作用PostgreSQL14推荐 16/18编译阶段要依赖它的头文件和库文件Visual Studio2019提供编译器安装时务必勾选C 桌面开发工作负载Windows SDK10.0.19041随 VS 工具链一起安装提供系统头文件漏装会编译失败Git任意较新版本拉取 pgvector 源码从克隆源码到编译完成拉取 v0.8.1 分支源码源码放在临时目录即可装完之后不用再管它cd %TEMP% git clone --branch v0.8.1 https://gitcode.com/GitHub_Trending/pg/pgvector.git cd pgvector设置 PGROOT 与 PATH 环境变量把 PGROOT 指向你的 PostgreSQL 安装目录。Makefile.win 靠这个变量定位头文件、库文件和安装目标没设置的话 nmake 会直接报错。同一会话里顺手把 bin 目录也加进 PATHset PGROOTC:\Program Files\PostgreSQL\16 set PATH%PGROOT%\bin;%PATH%在 x64 Native Tools 命令行执行 nmake 编译终端换成 VS 的x64 Native Tools Command Prompt用别的 shell 会缺 SDK 依赖。然后跑两条命令一条编译、一条安装nmake /F Makefile.win nmake /F Makefile.win install第二条命令负责把 vector.dll 和 SQL 文件拷贝进 PGROOT 的对应目录。编译本身不慢顺利的话端到端大约 20 分钟。两句话验证一轮回归连上数据库依次执行两句CREATE EXTENSION vector; SELECT vector_version();第二条能返回版本号说明 pgvector 安装已经生效。✅想跑完整回归的话命令行再补一行 pgvector installcheck它会把 test/sql 下的全部用例过一遍类型转换、索引构建、距离函数都有覆盖nmake /F Makefile.win installcheck编译报错时按这个顺序查⚠️ 常见的 pgvector 编译报错基本集中在下面三种情况从上往下排查三类高频报错对照现象原因处理办法找不到crtdefs.h终端环境不对或 VS 缺少 SDK 组件换到 VS 的 x64 Native 命令行仍不行就重装C 生成工具PGROOT is not set环境变量没设置或终端重开后丢失在当前会话重新执行set PGROOT...C2196case value already used编译没有在 VS 原生环境里进行切换到正确的命令行后执行nmake /F Makefile.win clean再重新编译装完能干什么怎么让它更快向量类型与维度上限类型维度上限说明vector约 2000halfvec约 4000bit64000sparsevec—面向高维稀疏数据距离算子算子距离类型-L2#内积取负余弦L1四个算子都能建索引加速查询。索引选型HNSW 还是 IVFFlat索引特点怎么选HNSW图结构查询快多数场景的默认选择IVFFlat构建快更看重建索引速度时调优清单数据灌完再建索引调大maintenance_work_mem大表建索引时开启并行 workerHNSW 调ef_searchIVFFlat 调probes调高换召回调低换速度召回不达标先查索引选型小表走顺序扫描往往更稳想深入看编译规则可以打开 Makefile.win回归测试用例都在 test/sql/ 目录下。【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考