PGVector教程:30分钟给PostgreSQL加AI搜索

📘 教程 2026-08-01 约 5 分钟阅读

你已经在用PostgreSQL——加向量搜索可以保持技术栈简单。

💡 你将学到

你已经在用PostgreSQL——加向量搜索可以保持技术栈简单。

📜 目录

PGVector 教程 2026:30 分钟为 PostgreSQL 添加 AI 搜索

PGVector 是 PostgreSQL 的扩展,可为现有数据库添加向量存储和相似度搜索功能。凭借 22,400 个 GitHub Star,它是在不引入独立向量数据库的情况下添加语义搜索的最流行方式。如果你已经在运行 Postgres,本教程可在半小时内让你拥有一个可用的 RAG 搜索。

为什么选择 PGVector 而不是新数据库

因素 PGVector 专用向量数据库
安装 1 条命令 需要运行新服务
数据一致性 与数据同库 需要同步
事务 完整 ACID 各不相同
扩展性 约 100 万向量以内表现出色 1 亿以上更优
你已在运行 Postgres 免费 额外成本

第 1 步:安装扩展

CREATE EXTENSION IF NOT EXISTS vector;

在 Ubuntu 上:apt install postgresql-16-pgvector。在 Mac 上:brew install pgvector。

第 2 步:创建表

CREATE TABLE documents (
    id SERIAL PRIMARY KEY,
    content TEXT,
    embedding vector(768)
);

768 维度必须与你的嵌入模型匹配(bge-m3 使用 1024;nomic-embed-text 使用 768)。

第 3 步:插入嵌入(Python)

import psycopg2
from openai import OpenAI

client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
vec = client.embeddings.create(model="nomic-embed-text", input="your text").data[0].embedding

conn = psycopg2.connect("dbname=app")
conn.execute(
    "INSERT INTO documents (content, embedding) VALUES (%s, %s)",
    ("your text", vec)
)

第 4 步:搜索

SELECT content, 1 - (embedding <=> query_embedding) AS similarity
FROM documents
ORDER BY embedding <=> query_embedding
LIMIT 5;

<=> 运算符表示余弦距离。数值越小 = 越相似。

第 5 步:添加索引(大规模场景下必需)

CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops);

HNSW 索引可在数据超过约 1 万行后,将搜索时间从秒级缩短到毫秒级。

常见问题

PGVector 与专用向量数据库相比如何? 对于约 1000 万向量以下的大多数应用,PGVector 在简单性和一致性方面更胜一筹。Chroma(28,900 Star)、Qdrant(33,700 Star)和 Milvus(45,400 Star)在超大规模场景或需要专用存储时更具优势。

是否兼容 LangChain? 是的——langchain-postgres 提供了 PGVector 向量存储类。

选择 HNSW 还是 IVFFlat 索引? 选 HNSW——准确率更高且无需调参。IVFFlat 已属遗留方案。

相关文章

❓ 常见问题

PGVector 与专用向量数据库相比如何?

对于约 1000 万向量以下的大多数应用,PGVector 在简单性和一致性方面更胜一筹。Chroma(28,900 Star)、Qdrant(33,700 Star)和 Milvus(45,400 Star)在超大规模场景或需要专用存储时更具优势。

是否兼容 LangChain?

是的——langchain-postgres 提供了 PGVector 向量存储类。

选择 HNSW 还是 IVFFlat 索引?

选 HNSW——准确率更高且无需调参。IVFFlat 已属遗留方案。

相关文章
2026-08-01
本地AI声音克隆:离线开源工具
2026-08-14
Civitai 上的 ComfyUI 工作流 2026:查找、下载、运行社区节点图
2026-08-06
MCP TypeScript SDK(1.3万星)2026:用TypeScript构建你的第一个MCP服务器

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论