
10分鐘在Windows裝好pgvector從零到第一條向量查詢的完整指南【免費(fèi)下載鏈接】pgvectorOpen-source vector similarity search for Postgres項(xiàng)目地址: https://gitcode.com/GitHub_Trending/pg/pgvectorpgvector 是 PostgreSQL 的開源向量相似性搜索擴(kuò)展讓你的數(shù)據(jù)庫(kù)能直接存向量、按距離排序檢索。這篇文章帶你走完 Windows 上的 pgvector 安裝全流程裝前自檢、選路線、動(dòng)手裝、查錯(cuò)最后建一張表跑出第一條相似度查詢。跟著順序做讀完即可用。 環(huán)境自檢清單開始之前確認(rèn)這4件事動(dòng)手前先花兩分鐘確認(rèn)環(huán)境后面 90% 的報(bào)錯(cuò)都出在這一步。項(xiàng)目要求說(shuō)明操作系統(tǒng)Windows 10/11x64編譯命令默認(rèn)按 64 位工具鏈走PostgreSQL13 及以上版本pgvector 0.8.6 支持 PG 1317.0~17.2 有已知鏈接問題建議 17.3 或 16.xVisual Studio2019 或 2022安裝時(shí)勾選使用 C 的桌面開發(fā)工作負(fù)載提供 MSVC 與 nmakeGit for Windows任意穩(wěn)定版僅源碼路線需要用于克隆倉(cāng)庫(kù)下載來(lái)源PostgreSQL 用 EDB 官網(wǎng)的 Windows 安裝包Visual Studio 裝 Community 版即可Git 用官網(wǎng)安裝包。裝 PG 時(shí)保持默認(rèn)路徑C:\Program Files\PostgreSQL\版本\后面編譯要引用它。?? 兩條安裝路線10秒選一條路線A預(yù)編譯文件路線B源碼編譯適合誰(shuí)不想碰編譯、只想要最新版需要特定分支/最新提交耗時(shí)約1分鐘約5~10分鐘依賴只有 PostgreSQL還需 Visual Studio Git步驟復(fù)制3類文件設(shè)環(huán)境變量 兩條 nmake 命令判斷標(biāo)準(zhǔn)很簡(jiǎn)單沒有特殊編譯需求就選路線 A倉(cāng)庫(kù)發(fā)布頁(yè)沒有你想要的版本才選路線 B。兩條路線的產(chǎn)物完全一樣裝完后用法沒有任何區(qū)別。 路線A預(yù)編譯三步裝法適合大多數(shù)讀者。從倉(cāng)庫(kù)發(fā)布頁(yè)下載 Windows 版 pgvector 文件后只需復(fù)制文件到 PostgreSQL 的三個(gè)位置。第一步放 DLL。把vector.dll復(fù)制到 PostgreSQL 的 lib 目錄C:\Program Files\PostgreSQL\16\lib\第二步放擴(kuò)展描述文件。把vector.control復(fù)制到 share\extension 目錄C:\Program Files\PostgreSQL\16\share\extension\第三步放 SQL 腳本。把vector--*.sql全部 SQL 文件復(fù)制到同一個(gè)目錄C:\Program Files\PostgreSQL\16\share\extension\說(shuō)明vector.control聲明擴(kuò)展元信息當(dāng)前版本 0.8.6vector--x.y.z.sql是各版本的安裝腳本PG 按版本號(hào)自動(dòng)選用。若你的 PG 裝在D:\等其他盤符把路徑里的C:\Program Files替換掉即可。復(fù)制涉及 Program Files復(fù)制器提示權(quán)限時(shí)點(diǎn)繼續(xù)或先右鍵以管理員身份運(yùn)行資源管理器。 路線B源碼編譯關(guān)鍵命令全程在x64 Native Tools Command Prompt for VS中執(zhí)行并以管理員身份打開它。這一條命令提示符決定了架構(gòu)和工具鏈選錯(cuò)是 Windows 編譯報(bào)錯(cuò)的頭號(hào)原因。先克隆倉(cāng)庫(kù)并設(shè)置 PGROOT 指向你的 PostgreSQL 安裝目錄set PGROOTC:\Program Files\PostgreSQL\16 git clone --branch v0.8.6 https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector然后編譯并安裝nmake 會(huì)把vector.dll、vector.control和 SQL 腳本自動(dòng)分發(fā)到 PG 的lib\與share\extension\下nmake /F Makefile.win nmake /F Makefile.win install編譯產(chǎn)物是vector.dll與路線 A 的預(yù)編譯文件等價(jià)后續(xù)驗(yàn)證步驟通用。?? 報(bào)錯(cuò)速查表現(xiàn)象→原因→處理1. 現(xiàn)象Cannot open include file: postgres.h: No such file or directory原因PGROOT指向的目錄不對(duì)找不到 PG 頭文件。 處理核對(duì)PGROOT是否精確指向C:\Program Files\PostgreSQL\16這一層不能再多一層bin或少一層重新 set 后再編譯。2. 現(xiàn)象error C2196: case value 4 already used原因架構(gòu)不匹配——你用的不是 x64 工具鏈比如誤用了 x86 提示符或 VS 普通終端。 處理關(guān)閉當(dāng)前終端重新打開x64 Native Tools Command Prompt for VS先nmake /F Makefile.win clean清理殘留再重新執(zhí)行編譯兩條命令。3. 現(xiàn)象Access is denied或安裝階段寫文件失敗原因沒以管理員身份運(yùn)行無(wú)法寫入 Program Files。 處理右鍵x64 Native Tools Command Prompt for VS→以管理員身份運(yùn)行重跑安裝步驟。補(bǔ)充一條版本類問題在 PG 17.0~17.2 上鏈接時(shí)報(bào)unresolved external symbol float_to_shortest_decimal_bufn這是 PG 該幾個(gè)小版本的已知問題升級(jí)到 17.3 即可。? 驗(yàn)證與第一次向量查詢重啟 PostgreSQL 服務(wù)或確保服務(wù)已運(yùn)行用 psql 連上目標(biāo)庫(kù)執(zhí)行下面的 SQL確認(rèn)擴(kuò)展能正常創(chuàng)建且向量類型可用CREATE EXTENSION vector; SELECT [1,2,3]::vector;注意CREATE EXTENSION要在每個(gè)需要用到向量的數(shù)據(jù)庫(kù)里各執(zhí)行一次。接著建表、寫數(shù)據(jù)、查最近鄰?fù)暾芡ㄒ槐镃REATE TABLE items ( id bigserial PRIMARY KEY, embedding vector(3) ); INSERT INTO items (embedding) VALUES ([1,2,3]), ([4,5,6]), ([7,8,9]); SELECT * FROM items ORDER BY embedding - [3,1,2] LIMIT 5;-是歐氏距離L2算子查詢[3,1,2]時(shí)[1,2,3]應(yīng)排在第一位。距離越小排越前——如果結(jié)果順序符合這個(gè)直覺你的 pgvector 就裝好了。 下一步索引、場(chǎng)景與延伸閱讀加索引再查詢。數(shù)據(jù)量上萬(wàn)后全表掃描會(huì)明顯變慢。按場(chǎng)景二選一頻繁更新用 HNSW數(shù)據(jù)基本靜態(tài)且內(nèi)存緊張用 IVFFlatCREATE INDEX ON items USING hnsw (embedding vector_l2_ops);典型場(chǎng)景。語(yǔ)義搜索文本 embedding 檢索、商品/內(nèi)容推薦、以圖搜圖、異常點(diǎn)檢測(cè)——共同點(diǎn)都是把向量放在關(guān)系數(shù)據(jù)旁邊用一條 SQL 連 JOIN 帶相似度。更多距離度量。除 L2 外還支持內(nèi)積#、余弦、L1選型參考 README.md 的 Getting Started 與距離函數(shù)章節(jié)。類型擴(kuò)展。除稠密vector外還有半精度halfvec、稀疏sparsevec、二進(jìn)制bit類型維度很高或很稀疏時(shí)能省內(nèi)存和查詢時(shí)間細(xì)節(jié)見 src/ 下的實(shí)現(xiàn)源碼。裝好只是開始先用小數(shù)據(jù)量把 HNSW 索引建起來(lái)體驗(yàn)一次加速再?zèng)Q定參數(shù)m、ef_search怎么調(diào)?!久赓M(fèi)下載鏈接】pgvectorOpen-source vector similarity search for Postgres項(xiàng)目地址: https://gitcode.com/GitHub_Trending/pg/pgvector創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考