ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Windows 完整跑通 pgvector 向量搜索:编译安装到首次查询全指南

Windows 完整跑通 pgvector 向量搜索:编译安装到首次查询全指南 Windows 完整跑通 pgvector 向量搜索编译安装到首次查询全指南【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvectorpgvector 是 PostgreSQL 的开源向量相似性搜索扩展。部署好之后embedding 向量直接存在普通表里建上 HNSW 或 IVFFlat 索引一条 SQL 就能查出最相似的结果不需要再单独维护一套向量数据库。本文覆盖 Windows 10/11 上 pgvector 部署的完整流程环境准备、nmake 编译、验收与回归测试照着敲一遍就能跑通。先定验收标准两行 SQL动手前先明确目标。整个部署是否成功只看两句话在 psql 里能否跑通、第二句能否返回版本号CREATE EXTENSION vector; SELECT vector_version();下面所有内容都是围绕这两句倒推展开需要什么环境、敲哪些命令、中途报错怎么处置。从验收倒推编译必须齐备的四样东西pgvector 是 C 语言扩展在 Windows 上构建依赖一套完整的 C 工具链加上 PostgreSQL 的开发文件。开工前逐项对一下PostgreSQL 14 及以上推荐 16 或 18。编译要读它的头文件include 目录和库文件lib 目录跑回归测试时还要用到它自带的 pg_regressVisual Studio 2019 及以上安装时务必勾选C 桌面开发工作负载漏勾是后面编译失败的头号原因Windows SDK 10.0.19041 及以上通常随 VS 工具链一起装别落下Git较新版本即可用于拉取源码前 3 项属于硬依赖缺一项 nmake 必然报错Git 只在开头用一次。Windows 编译 pgvector 的完整流程第一步拉取源码cd %TEMP% git clone --branch v0.8.1 https://gitcode.com/GitHub_Trending/pg/pgvector.git cd pgvector源码放系统临时目录就够编译安装完成后剩下的文件不再碍事。第二步把 PGROOT 指到 PostgreSQL 安装目录构建脚本 Makefile.win 靠PGROOT这个环境变量定位头文件、库文件和安装目标没设会直接以PGROOT is not set报错终止。顺手在同一会话里把 bin 加进 PATH后面连库时能直接敲 psqlset PGROOTC:\Program Files\PostgreSQL\16 set PATH%PGROOT%\bin;%PATH%末尾的 16 按你实际安装的版本改。第三步编译并安装终端要用 VS 的x64 Native Tools Command Prompt——只有这个 shell 里配好了 SDK 和 64 位编译器的环境变量换别的 shell 大概率找不到头文件。nmake /F Makefile.win nmake /F Makefile.win install第一行把 src/ 下的源码编译成vector.dll第二行负责落地动态库拷进 PGROOT 的lib目录vector.control 与 sql/ 下的扩展脚本放入share\extension。两行跑完部署就算就位。装完验证与完整回归先回到开头那两句在任意数据库执行CREATE EXTENSION vector; SELECT vector_version();第二句返回你编译出来的版本号主流程到此走通。想更稳一点再跑一遍完整回归。它会把 test/sql/ 下的 14 个用例全部过一遍覆盖类型转换、索引构建、距离函数三大块nmake /F Makefile.win installcheck输出很长只看末尾汇总没有 FAILED 就算通过。编译报错的三类高发问题 ⚠️报错信息像一张地址单先读地址再动手别盲敲命令。Windows 上的红屏九成落在下面三种1. 找不到crtdefs.h基本是工具链问题用错了终端或 VS 缺C 生成工具组件。先切到 x64 Native Tools Command Prompt 重编仍不行就打开 VS Installer 修复对应组件。2.PGROOT is not set环境变量没设或设置后另开了新终端——set只在当前会话生效。在当前会话里重新执行一遍set PGROOT...即可。3.C2196 case value already used通常意味着编译环境不是 VS 原生环境编译器对常量识别出了问题。切对命令行后先清理再重编nmake /F Makefile.win clean nmake /F Makefile.winpgvector 装好之后的能力速查四种向量类型基本覆盖所有 embedding 输出vector单精度浮点HNSW/IVFFlat 索引上限 2,000 维halfvec半精度浮点体积减半索引上限 4,000 维bit二进制向量索引上限 64,000 维适合二值量化场景sparsevec稀疏向量只存非零元素专为高维稀疏数据设计四个距离算子都能配合索引使用算子含义常见场景-L2欧氏距离通用相似性检索#内积取负未归一化向量的检索余弦距离文本 embedding重方向轻幅度L1 距离强调稀疏差异的场景两类索引各有所长HNSW基于图结构查询速度快多数场景默认选它IVFFlat构建快、内存开销低适合更看重构建时长的数据量。索引构建与查询调优要点几条经验能帮你避开大部分性能坑数据灌完再建索引先建索引再插数据速度会差很多调大maintenance_work_mem它直接决定索引构建可用的内存预算大表开并行 worker建索引把多核用起来搜索参数二选一HNSW 调ef_searchIVFFlat 调probes调高换召回、调低换速度小表别急着上索引直接顺序扫描往往更快也更稳pgvector 的 Windows 部署没有玄学——设一个变量、敲两行编译、用两行 SQL 验收向量搜索就在手边了下一步建一张表灌入 embedding用ORDER BY embedding - ...跑第一条查询试试手。【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表