展:完整指南)
如何在 Windows 上快速源碼編譯安裝 pgvector 向量搜索擴(kuò)展完整指南【免費(fèi)下載鏈接】pgvectorOpen-source vector similarity search for Postgres項(xiàng)目地址: https://gitcode.com/GitHub_Trending/pg/pgvector這篇指南帶你走完 pgvector 在 Windows 上源碼編譯、安裝進(jìn) PostgreSQL 并啟用向量相似性搜索的完整流程先核對(duì)版本與工具鏈再一次性跑通 nmake 構(gòu)建最后用幾行 SQL 完成驗(yàn)證、調(diào)優(yōu)與排錯(cuò)。環(huán)境核對(duì)無誤的前提下整個(gè)過程可以一次做對(duì)。動(dòng)手前核對(duì)環(huán)境三處最容易翻車的地方Windows 上的構(gòu)建失敗絕大多數(shù)能歸因到下面三個(gè)位置建議動(dòng)編譯器之前先過一遍。對(duì)齊 PostgreSQL 版本pgvector 0.8.1 支持 PostgreSQL 13 及以上版本版本越高越穩(wěn)妥。如果你機(jī)器上裝過多個(gè)版本先選定一個(gè)并記住它的安裝目錄——下一步的 PGROOT 就指向這里選錯(cuò)版本是后續(xù)一切報(bào)錯(cuò)的源頭之一。確認(rèn) Visual Studio 的 C 工具鏈完整編譯依賴 Microsoft Visual Studio 2019 或更高版本中的桌面 C 生成工具。裝完后在開始菜單找得到 “x64 Native Tools Command Prompt for VS” 才算齊活找不到就說明 C 組件沒裝全。預(yù)先認(rèn)識(shí)三種典型失敗現(xiàn)象make / gmake 不被識(shí)別Linux 與 macOS 習(xí)慣里的make、make install在 Windows 環(huán)境里跑不起來本項(xiàng)目的 Windows 構(gòu)建入口是nmake /F Makefile.win。提示缺少 pgxs.mk它屬于 PostgreSQL 的構(gòu)建系統(tǒng)找不到通常意味著 PGROOT 沒設(shè)置或沒指對(duì)安裝目錄。復(fù)制文件時(shí)拒絕訪問安裝環(huán)節(jié)要寫入 PostgreSQL 的 lib 與 share 目錄非管理員的終端會(huì)被擋下來。編譯流程一次性跑通的順序以管理員身份打開 x64 Native Tools Command Prompt右鍵以管理員身份運(yùn)行 “x64 Native Tools Command Prompt for VS”。這里要的不是普通 PowerShell 或 cmd而是這個(gè)預(yù)配置好的原生編譯環(huán)境。判斷標(biāo)準(zhǔn)終端標(biāo)題欄帶 “x64 Native Tools” 字樣且窗口是以管理員身份打開的。設(shè)置 PGROOT 指向 PostgreSQL 安裝目錄set PGROOTC:\Program Files\PostgreSQL\18把版本號(hào)換成你實(shí)際安裝的版本。這個(gè)變量是 Makefile.win 的硬性要求——不設(shè)置時(shí)構(gòu)建腳本會(huì)直接報(bào)PGROOT is not set。設(shè)置后可以在同一窗口里執(zhí)行echo %PGROOT%回顯確認(rèn)輸出的路徑應(yīng)真實(shí)存在??寺≡创a并進(jìn)入項(xiàng)目目錄cd %TEMP% git clone --branch v0.8.1 https://gitcode.com/GitHub_Trending/pg/pgvector.git cd pgvector固定在 v0.8.1 標(biāo)簽上拉取保證代碼與本指南描述的行為一致。用 nmake 編譯并安裝nmake /F Makefile.win nmake /F Makefile.win install判斷標(biāo)準(zhǔn)第一條命令結(jié)束后目錄下應(yīng)出現(xiàn)vector.dll及一批.obj文件第二條命令結(jié)束后%PGROOT%\lib下多了vector.dll%PGROOT%\share\extension下多了 vector 的控制文件與 SQL 腳本。任一步失敗對(duì)照文末的排錯(cuò)速查表處理。構(gòu)建之后驗(yàn)證、調(diào)優(yōu)與排錯(cuò)速查用最小 SQL 驗(yàn)證擴(kuò)展可用以數(shù)據(jù)庫(kù)超級(jí)用戶身份進(jìn)入 psql依次執(zhí)行CREATE EXTENSION vector; SELECT NULL::vector; CREATE TABLE test_items (id bigserial PRIMARY KEY, embedding vector(3)); INSERT INTO test_items (embedding) VALUES ([1,2,3]), ([4,5,6]); SELECT * FROM test_items ORDER BY embedding - [3,1,2] LIMIT 5;第一條必須返回CREATE EXTENSION且無報(bào)錯(cuò)報(bào)找不到擴(kuò)展則回到安裝步驟檢查文件是否落盤。類型測(cè)試應(yīng)返回一個(gè) NULL 的 vector 值而不是類型錯(cuò)誤。-算子是 L2 距離結(jié)果應(yīng)是[1,2,3]排在[4,5,6]前面——順序正確即代表擴(kuò)展工作正常。該擴(kuò)展需要在每個(gè)想使用它的數(shù)據(jù)庫(kù)里單獨(dú)創(chuàng)建一次。內(nèi)存參數(shù)與 HNSW 索引數(shù)據(jù)量上來后配合調(diào)整 PostgreSQL 內(nèi)存參數(shù)先用SHOW shared_buffers;、SHOW work_mem;查看現(xiàn)狀再用SET maintenance_work_mem 2GB;之類的語句加速索引構(gòu)建具體數(shù)值以機(jī)器實(shí)際內(nèi)存為準(zhǔn)。查詢側(cè)推薦 HNSW 索引搭配vector_l2_ops算子類CREATE INDEX ON test_items USING hnsw (embedding vector_l2_ops);其余算子類與 IVFFLAT 的取舍以 README.md 的說明和官方文檔為準(zhǔn)。排錯(cuò)速查表現(xiàn)象原因與處理PGROOT is not set漏了set PGROOT...一步補(bǔ)上后重新編譯Cannot open include file: postgres.hPGROOT 未設(shè)置或指錯(cuò)目錄修正后重編error C2196: case value 4 already used沒用 x64 Native Tools 終端換終端后執(zhí)行nmake /F Makefile.win clean再重新編譯Access is denied非管理員權(quán)限運(yùn)行換管理員終端重跑安裝命令make 命令不識(shí)別Windows 上請(qǐng)使用nmake /F Makefile.win而不是make以上判斷依據(jù)來自倉(cāng)庫(kù) README 的 Windows 安裝說明一節(jié)可自行對(duì)照 README.md 核對(duì)。驗(yàn)證通過后就可以接入真實(shí)數(shù)據(jù)了先灌入一小批向量做近鄰查詢確認(rèn)索引被命中且耗時(shí)符合預(yù)期再逐步放量。下一步建議按 README.md 中 Getting Started 之后的索引與檢索章節(jié)繼續(xù)深入?!久赓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),僅供參考