pgvector 是什麼、怎麼安裝和使用:在 PostgreSQL 裏存向量、查最近鄰、建索引

pgvector 是什麼、怎麼安裝使用?按官方 README 講清它給 PostgreSQL 加了什麼、源碼與 Docker 兩種安裝方式、四條 SQL 完成建表插入查詢、六個距離運算符的含義、HNSW 與 IVFFlat 兩種索引怎麼選怎麼調,以及 2000 維的索引上限怎麼繞過。

NNathaniel bigo··原創首發·AI 輔助撰寫
7 分鐘讀完
資料核對於 2026-10-11 · 依據官方文檔與公開資料整理 免費帳號 帳號
本文根據 pgvector 官方倉庫 README 整理,資料核對於 2026-10-11。文中命令和 SQL 取自官方 README,沒有在本機運行驗證。

適用於誰

  • 搜「pgvector 是什麼」「pgvector 安裝」「pgvector 教學」「pgvector docker」的人;
  • 業務數據已經在 PostgreSQL 裏,做 RAG 或語義搜尋時不想再多維護一個向量數據庫的人;
  • 用上了 pgvector,但數據一多查詢就變慢,不知道索引該怎麼建的人。

結論先說

  1. pgvector 是 PostgreSQL 的一個開源擴展,給它加上向量相似度搜索,向量可以和其他業務數據存在同一個庫、同一張表裏。
  2. 支持 PostgreSQL 13 及以上。
  3. 用法就是 SQL:CREATE EXTENSION vector; 之後,多了一個 vector 列類型和幾個距離運算符。
  4. 不建索引時是精確搜尋,結果完全準確但數據多了會慢;建了近似索引會更快,代價是召回率略降。
  5. 索引首選 HNSW。官方的評價是它在速度和召回率之間的平衡更好,代價是建索引更慢、更佔內存。
  6. vector 類型最多能給 2,000 維建索引。維度更高的嵌入要用半精度或二值量化。

一、它提供了什麼

  • 精確和近似的最近鄰搜尋;
  • 四種向量類型:單精度 vector、半精度 halfvec、二值 bit、稀疏 sparsevec;
  • 六種距離:L2、內積、餘弦、L1、漢明、傑卡德。

因為它就在 PostgreSQL 裏,事務、備份、權限、關聯查詢這些能力照常可用。比如「只在當前用戶有權限看的文檔裏做語義搜尋」,就是一條帶 WHERE 的普通 SQL。

二、安裝

Linux 和 Mac(從源碼編譯)

sh
cd /tmp
git clone --branch v0.8.7 https://github.com/pgvector/pgvector.git
cd pgvector
make
make install # may need sudo

Docker

sh
docker pull pgvector/pgvector:pg18-trixie

鏡像裏是已經裝好 pgvector 的 PostgreSQL,本地試用最省事。

Windows:官方的做法是在 Visual Studio 裏安裝 C++ 支持,以管理員身份打開「x64 Native Tools Command Prompt for VS」,設定 PGROOT 為 PostgreSQL 的安裝路徑,克隆同一個版本標籤後用 nmake /F Makefile.win 編譯並安裝。完整命令見 README。

其他方式:README 還列了 Homebrew、PGXN、APT、Yum、conda-forge 等包管理器;許多託管的 PostgreSQL 服務也已經提供這個擴展,用雲數據庫的先查一下廠商文檔,往往不需要自己安裝。

三、四條 SQL 上手

sql
CREATE EXTENSION vector;
CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
  1. 在當前數據庫裏啟用擴展(每個要用它的數據庫執行一次);
  2. 建一張帶向量列的表,vector(3) 表示 3 維。實際使用時括號裏是嵌入模型的輸出維度;
  3. 插入向量,寫法是方括號包住、逗號分隔的字符串;
  4. 按 L2 距離找出離 [3,1,2] 最近的 5 條。

實際的表通常還有原文、來源等列,向量列只是其中一列。

四、六個距離運算符

運算符含義
<->L2 距離(歐氏距離)
<#>負內積
<=>餘弦距離
<+>L1 距離(曼哈頓距離)
<~>漢明距離(二值向量)
<%>傑卡德距離(二值向量)

兩點說明:

  • <#> 返回的是負內積,所以同樣是 ORDER BY ... LIMIT 取最小值,得到的是內積最大的;
  • 用哪種距離,看嵌入模型的文檔建議。文本嵌入最常用的是餘弦距離。建索引時選的運算符類要和查詢時用的距離一致,否則索引用不上。

五、建索引:HNSW 還是 IVFFlat

HNSW

sql
CREATE INDEX ON items USING hnsw (embedding vector_l2_ops);
  • 官方評價:速度與召回率的平衡更好,但建索引更慢、佔用內存更多;
  • 建索引時的兩個參數:m(預設 16)和 ef_construction(預設 64),寫法是 WITH (m = 16, ef_construction = 64);
  • 查詢時的參數 hnsw.ef_search 預設 40,調大可以提高召回率,代價是變慢。

IVFFlat

sql
CREATE INDEX ON items USING ivfflat (embedding vector_l2_ops) WITH (lists = 100);
  • 官方評價:建索引更快、佔內存更少,但查詢性能較低;
  • 要在表裏有了數據之後再建;
  • lists 的取值建議:100 萬行以內用「行數 / 1000」,超過 100 萬行用「行數的平方根」;
  • 查詢時的 ivfflat.probes 從「lists 的平方根」起步,調大提高召回率、降低速度。

怎麼選:

情況建議
數據量小(幾千到幾萬行)可以先不建索引,精確搜尋就夠快,而且結果完全準確
一般情況HNSW
內存緊張,或者需要很快建完索引IVFFlat

示例裏的 vector_l2_ops 對應 L2 距離。用餘弦距離查詢時,建索引要換成對應餘弦的運算符類,名稱見 README 的索引一節。

六、維度上限

類型最多可存儲最多可建索引
vector16,000 維2,000 維
halfvec16,000 維4,000 維
bit64,000 維
sparsevec16,000 個非零元素1,000 個非零元素(HNSW)

嵌入模型的輸出超過 2,000 維時,README 給的辦法:

  • 用半精度向量或半精度索引,可以到 4,000 維;
  • 用二值量化,可以到 64,000 維;
  • 或者對子向量建索引、做降維。

有的嵌入模型支持指定較低的輸出維度,在調用時直接取一個 2,000 以內的維度也是常見做法,以所用模型的文檔為準。

七、混合搜尋

README 說明 pgvector 可以和 PostgreSQL 自帶的全文搜尋配合使用,兩路結果可以用 Reciprocal Rank Fusion(倒數排名融合)或交叉編碼器合併。

用戶的問題裏有型號、編號、專有名詞這類必須精確匹配的詞時,只靠向量搜尋容易漏,加上全文搜尋會穩很多。

常見問題

Q:一張表能存多少向量?

README 的回答:非分區表預設最大 32 TB;分區表可以有成千上萬個這樣的分區。

Q:建了索引,結果變少或者和之前不一樣?

近似索引本來就是用少量召回率換速度。調大 hnsw.ef_search 或 ivfflat.probes 可以提高召回率。

Q:CREATE EXTENSION vector 報錯說找不到擴展?

說明擴展文件沒有裝到這個 PostgreSQL 實例上。自建的檢查編譯安裝是否裝到了正確的 PostgreSQL 版本;雲數據庫看廠商是否支持、是否要先在控制台開啟。

Q:和專門的向量數據庫怎麼選?

已經在用 PostgreSQL、向量規模在單機能承受的範圍內,pgvector 少一個系統、數據一致性也好處理。只是做原型看《ChromaDB 是什麼》;規模很大看《Milvus Lite 使用教學》裏對 Milvus 各形態的說明。

參考資料

  • pgvector/pgvector(官方倉庫與 README):https://github.com/pgvector/pgvector
需要開通或續費?AI 會員充值與全部商品 →

Nathaniel 的更多內容

  1. 01

    AI 學習路線:零基礎從哪開始,6 個階段、每階段該讀哪幾篇教學(2026)

    AI 學習路線怎麼走?給零基礎的人一條循序漸進的路徑:先選一個助手用順,再學提問,再用進日常工作,按需學做圖做影片,守住私隱與版權,最後進階自動化和編程。每個階段都配了本站對應的教學。

    其他 AI 工具0
  2. 02

    AI 瀏覽器有哪些:Perplexity Comet、Opera Neon、Dia、Brave Leo 與 Edge Copilot 的官方說法對照

    AI 瀏覽器有哪些?按官方頁面整理 Perplexity Comet、Opera Neon、Dia、Brave Leo 和 Edge 裏的 Copilot:官方自述的定位、支持的平台、免費還是訂閱,以及 Gemini、Claude 的 Chrome 方案和已停用的 ChatGPT Atlas。

    其他 AI 工具0
  3. 03

    即夢國際版 Dreamina 是什麼:官方站入口、能生成什麼、免費積分和模型(2026)

    即夢國際版 Dreamina 是什麼?官方站是 dreamina.capcut.com,是一個圖片、影片和數字人一體的 AI 創作平台。按官方首頁和 FAQ 講:能生成什麼、免費用戶每天 120 積分、列出的 Seedance 與 Seedream 模型,以及和國內即夢怎麼區分。

    其他 AI 工具0
  4. 04

    Kimi K3 Coding Plan 是什麼、怎麼用:Kimi Code 會員、模型 ID、套餐價格和額度規則

    Kimi K3 Coding Plan 是什麼?按 Kimi 官方文檔核對:官方現在叫 Kimi Code,是 Kimi 會員權益裏的編程服務,Plus 及以上才有;講 K3 等模型 ID、國內新套餐價格、三種客戶端、第三方工具接入和額度規則。

    Kimi0
  5. 05

    DeepSeek V4 Pro 和 Flash 的區別與 API 價格:官方價格頁逐項對照(高峰與空閒時段)

    DeepSeek V4 Pro 和 Flash 有什麼區別、API 怎麼收費?按 DeepSeek 官方價格頁(2026-10-19 查詢)列出兩個模型的版本、上下文、圖像理解、並發和每百萬 token 價格,說明高峰與空閒時段的計費差別和舊模型名怎麼處理。

    其他 AI 工具0
  6. 06

    GPT-6 Pro(Astra)怎麼用、哪些套餐有:怎麼選到 Pro 檔、用量限制和 Pro 三檔價格

    GPT-6 Pro(Astra)怎麼用、哪些套餐有?按 OpenAI 幫助中心核對:聊天裏 Pro 檔給 Pro 100、Pro 200、Business 和 Enterprise;Plus 在 Work 和 Codex 裏含 Astra。講怎麼選到、用量上限和官方 Pro 價格。

    ChatGPT0

同產品的其他教學

  1. 01

    AI圖片放大與高清修復:Midjourney、ChatGPT、Gemini 怎麼出高解像度圖

    AI 生成的圖不夠清晰,想打印或做大圖怎麼辦?本文按官方文檔講清 Midjourney 的 Subtle / Creative 放大和 HD 直出、Gemini 與 ChatGPT 的解像度選項、Flow 的影片放大,以及「AI 放大會編造細節」的注意事項。

    Gemini其他 AI 工具0
  2. 02

    AI影片運鏡提示詞大全:推拉搖移跟升降、環繞、甩鏡怎麼寫(中英對照)

    AI 影片的運鏡提示詞怎麼寫?本文按 Google 官方影片提示指南整理鏡頭運動、機位角度、鏡頭光學效果三張中英對照表,每個術語配效果說明和例句,並給出組合運鏡的寫法和常見翻車原因,適用於 Veo、即夢、可靈等工具。

    Gemini其他 AI 工具0
  3. 03

    AI 影片翻譯怎麼做:用 ElevenLabs 給影片自動配音翻譯、轉寫並生成字幕

    想把一段影片翻譯成另一種語言並保留原聲音色?本文按 ElevenLabs 官方文檔講清 Dubbing 自動配音翻譯的操作步驟、文件限制、免費檔水印與計費方式,以及用 Speech to Text 轉寫、在字幕編輯器裏調整並導出字幕的流程。

    其他 AI 工具0
  4. 04

    MCP Inspector 怎麼用:安裝、啟動命令、調試 MCP 伺服器與 v2 的變化

    MCP Inspector 是什麼、怎麼安裝和使用?按 MCP 官方文檔講清網頁、命令行、終端介面三種模式的啟動命令,怎麼連本地和遠程伺服器、怎麼傳環境變量,密鑰存在哪,以及 v2 相比舊教學在端口、令牌變量名和 Node 版本上的變化。

    Claude其他 AI 工具0
  5. 05

    MCP 的 stdio、SSE 和 Streamable HTTP 有什麼區別:本地與遠程 MCP 怎麼選

    MCP 配置裏的 stdio、sse、http 到底差在哪?按 MCP 官方規範講清兩種標準傳輸方式的工作原理、Streamable HTTP 與舊的 HTTP+SSE 的關係、會話與斷線續傳、規範對安全的硬性要求,以及本地伺服器和遠程伺服器各適合什麼場景。

    Claude其他 AI 工具0
  6. 06

    Midjourney 可以商用嗎:作品歸屬、商用條件與隱身模式

    Midjourney 生成的圖片和影片能不能商用、版權歸誰、公司用要什麼套餐、作品會不會被別人看到?本文按 Midjourney 服務條款逐條解釋,並補充中美對 AI 生成圖片版權的官方 / 司法觀點。

    其他 AI 工具0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~