前言
向量数据库在 AI 与大模型 (LLM) 领域中是个至关重要的组件,主要承担'记忆与检索'的角色,其解决了大模型不能长期存储海量知识、推理效率受限的问题,无论是 RAG、推荐系统还是智能搜索,向量数据库都提供了'相似度搜索'的能力,让模型能找到相关上下文,而不仅仅依赖参数记忆。这其中,pgvector 则是个比较独特的存在,选择站在 PostgreSQL 的基础上,高屋建瓴,而不是另起炉灶。随着版本的不断革新,pgvector 正在从一个实验性扩展,成长为 PostgreSQL 生态中'通用的向量搜索引擎',成为 LLM/RAG/AI 应用的基础组件。
Roadmap
从 pgvector 的 roadmap 中,不难看出,pgvector 在规模化落地场景下,不断在尝试与优化,pgvector 正在从'能用'走向'高效、可扩展、适合大规模 AI 应用'的阶段。

v0.4.x:
改进 IVFFlat 计划代价估算:优化了执行计划的成本模型,让查询优化器更合理地选择是否使用 IVFFlat 索引。增加向量维度上限:支持更高维度的向量存储,无论在表还是索引中,都能容纳更大维度的 embedding。
v0.5.x:
新增 HNSW 索引:引入 Hierarchical Navigable Small World 图索引,大幅提升高维向量相似度搜索性能。距离函数性能优化:加快余弦、内积等相似度度量的计算速度。并行 IVFFlat 构建:支持并行化创建 IVFFlat 索引,提高大规模索引构建效率。
v0.6.x:
并行 HNSW 构建:在 HNSW 索引上引入并行化构建机制,适合海量数据集场景。内存构建优化:提升了索引构建时的内存使用效率,加快索引建立速度并减少资源消耗。
v0.7.x:
halfvec 类型:支持 2 字节浮点 (半精度 float16),节省存储空间并加快计算。bit(n) 索引支持:支持对 bit 向量进行索引。sparsevec 类型:稀疏向量支持,维度上限可达 10 亿,适合大规模稀疏 embedding,应用范围越来越广,说明 pgvector 正在从'文本 embedding'走向**多模态应用 (文本、图像、音频、二进制特征)**量化 (Quantization):支持 scalar/binary 量化,进一步压缩存储和加速检索。新距离度量:支持 Jaccard / Hamming 距离。显式 SIMD:利用 CPU SIMD 指令集进行加速,显式 SIMD 则说明团队在尝试利用底层硬件优化计算,未来版本会更注重 高维、大规模 embedding 的低成本存储和高效计算。
v0.8.x:
Iterative Index Scan:提升带过滤条件查询时的召回率。HNSW 优化:改进索引构建与查询性能。云平台支持:如 Aurora、Cloud SQL 等主流云服务都已集成。
迭代扫描
0.8.0 中的迭代扫描,是我十分喜欢的特性,在 ANN 场景中,我们往往不会在全表里暴力搜索,而是要加上过滤条件,再在符合条件的数据里做向量相似度计算,但是这样就会遇到典型的 pre-filter 和 post-filter 的问题:
Pre-filtering:先应用业务过滤条件,然后在过滤后的子集里做向量相似度检索,检索空间小,结果更符合业务语义;但是只能用暴力搜索,因为过滤后的子集不再能直接利用 ANN 索引 (IVFFlat/HNSW);缺乏可扩展性,大规模数据下速度慢;Post-filtering:先在全量数据里使用 ANN 索引做向量近似搜索,得到候选集合,再对结果应用业务过滤条件。好处是能用上 ANN 索引,查询速度快,适合大规模数据;但可能会导致过滤后结果不足。





