为 Django、SQLAlchemy、Psycopg、asyncpg 等 Python 数据库库提供 pgvector 向量类型与相似度搜索支持。
timescale/pgvectorscale
基于 Rust 的 Postgres 扩展,在 pgvector 之上提供 DiskANN 索引和标签过滤,用于更快、更省成本的向量检索。
可替代:Pinecone
- Star
- 3,161
- Fork
- 160
- 未关闭 Issue
- 19
- 最近提交
- 24天前
这是什么?
pgvectorscale 是一个 PostgreSQL 扩展,与开源向量扩展 pgvector 配合使用,用于加速 embedding 列上的近似最近邻搜索。它新增了 StreamingDiskANN 索引类型,灵感来自微软的 DiskANN 研究,并提供基于 Statistical Binary Quantization 的压缩存储布局。
该扩展支持基于标签的过滤向量搜索,可以在一次查询中结合相似度排序与 smallint[] 列上的数组重叠过滤。也支持任意 WHERE 条件,但这些条件会在向量搜索之后作为后过滤应用。距离度量支持余弦、L2 和内积,沿用 pgvector 的操作符语法。
项目使用 Rust 和 PGRX 框架编写,而非 C。可以通过预构建的 Docker 镜像运行,也可以从源码编译,并已作为扩展提供给 Timescale Cloud 使用。
核心功能
- 01为 pgvector 的 embedding 列新增 StreamingDiskANN 索引。
- 02使用 Statistical Binary Quantization 压缩向量存储。
- 03通过 && 数组重叠操作符支持基于标签的过滤搜索。
- 04支持与 pgvector 一致的余弦、L2 和内积距离操作符。
- 05提供可调的构建参数和查询参数,用于权衡精度与速度。
适用场景
- 在现有 PostgreSQL 数据库中实现语义搜索或 RAG 检索。
- 在自托管的 Postgres 上存储大规模 embedding 数据,降低成本。
- 按分类标签或元数据条件过滤最近邻搜索结果。
快速上手
- 1
运行 TimescaleDB Docker 镜像(参见链接的安装文档)
- 2
使用 psql 连接到数据库
psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>" - 3
创建 pgvectorscale 扩展(CASCADE 会同时安装 pgvector)
CREATE EXTENSION IF NOT EXISTS vectorscale CASCADE;
使用前须知
- 由于一个未解决的问题,无法在 macOS Intel (x86) 机器上从源码构建。
- 从源码安装需要 Rust 工具链和 cargo-pgrx 构建环境。
收录于专题
标签
常见问题
- pgvectorscale 是什么?
- 基于 Rust 的 Postgres 扩展,在 pgvector 之上提供 DiskANN 索引和标签过滤,用于更快、更省成本的向量检索。 pgvectorscale 是一个 PostgreSQL 扩展,与开源向量扩展 pgvector 配合使用,用于加速 embedding 列上的近似最近邻搜索。它新增了 StreamingDiskANN 索引类型,灵感来自微软的 DiskANN 研究,并提供基于 Statistical Binary Quantization 的压缩存储布局。
- pgvectorscale 可以免费使用吗?用的什么许可证?
- pgvectorscale 以 PostgreSQL 许可证开源。用于商业产品前,请先确认许可证条款。
- pgvectorscale 还在维护吗?
- 活跃维护中。pgvectorscale 最近一次提交是在 2026年10月14日。
- pgvectorscale 适合用来做什么?
- 在现有 PostgreSQL 数据库中实现语义搜索或 RAG 检索。 在自托管的 Postgres 上存储大规模 embedding 数据,降低成本。 按分类标签或元数据条件过滤最近邻搜索结果。
- pgvectorscale 怎么安装和运行?
- 运行 TimescaleDB Docker 镜像(参见链接的安装文档) 使用 psql 连接到数据库: psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>" 创建 pgvectorscale 扩展(CASCADE 会同时安装 pgvector): CREATE EXTENSION IF NOT EXISTS vectorscale CASCADE;
- 在哪里获取 pgvectorscale?
- 源代码和安装说明在 GitHub 上:https://github.com/timescale/pgvectorscale
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
为 Go 提供 pgvector(PostgreSQL 向量扩展)支持,可配合 pgx、pg、Bun、Ent、GORM 和 sqlx 使用。
Qdrant 是用 Rust 编写的向量相似度搜索引擎和向量数据库,支持带条件过滤的语义搜索与推荐。
为 Node.js、Deno、Bun 的数据库客户端和 ORM 提供 pgvector 向量类型支持的 JavaScript/TypeScript 库。
Milvus 是一款开源分布式向量数据库,用于大规模存储和检索向量嵌入,常用于 AI 搜索与 RAG 应用。
为 Postgres 提供向量相似度搜索的开源扩展,可与关系型数据存放在一起。