首页/AI/RAG 与向量库速查/pgvector IVFFlat 索引
本包目录(229 条)
架构与流程30 条解析与切分33 条Embedding 与检索50 条
向量数据库49 条
重排与生成32 条评估与优化35 条

pgvector IVFFlat 索引

IVFFlat 在 pgvector 中按聚类划分列表:lists 决定划分粒度、ivfflat.probes 决定查询扫描的列表数;要求建索引时表内已有数据,否则空聚类无法查准。

RAG 与向量库速查AI更新于 2026-10-12

建 IVFFlat 索引

建 IVFFlat 索引
CREATE INDEX ON kb_chunks
USING ivfflat (embedding vector_cosine_ops)
WITH (lists = 100);

-- 查询期控制扫描列表数
SET ivfflat.probes = 10;
SELECT id FROM kb_chunks ORDER BY embedding <=> $1 LIMIT 10;

经验起点

经验起点
行数 ≤ 1,000,000:lists ≈ rows / 1000
行数 >  1,000,000:lists ≈ sqrt(rows)
probes 从 sqrt(lists) 附近开始调
索引是快照式的:数据大幅增长后应 REINDEX 重建,否则召回逐步变差。

易错点

  • 空表先建索引再导入数据,聚类中心无意义,召回明显偏低
  • 长期只增不重建,lists 与实际行数比例失衡

数据来源与参考

  • pgvector README(IVFFlat / Index tuning)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌