基于 Rust 的 Postgres 扩展,在 pgvector 之上提供 DiskANN 索引和标签过滤,用于更快、更省成本的向量检索。
pgvector/pgvector-go
为 Go 提供 pgvector(PostgreSQL 向量扩展)支持,可配合 pgx、pg、Bun、Ent、GORM 和 sqlx 使用。
- Star
- 356
- Fork
- 16
- 未关闭 Issue
- 0
- 最近提交
- 前天
这是什么?
pgvector-go 是一个 Go 库,让应用可以通过 pgvector 扩展在 PostgreSQL 中存储和查询向量嵌入。它提供稠密向量、半精度向量和稀疏向量的 Go 类型,并通过适配器与 pgx、pg、Bun、Ent、GORM 和 sqlx 直接配合使用。
库内覆盖了常见流程:启用扩展、定义向量列、写入嵌入数据,以及使用 L2、内积、余弦等距离运算符做最近邻查询。文档还介绍了如何创建 HNSW 或 IVFFlat 索引以加速近似搜索。Ent 集成提供了多种距离函数的辅助方法。
仓库中的示例涵盖 OpenAI 和 Cohere 的嵌入生成、基于 Reciprocal Rank Fusion 的混合检索、稀疏检索、推荐系统、Citus 水平扩展以及使用 COPY 批量导入数据。
核心功能
- 01提供稠密向量、半精度向量和稀疏向量的 Go 类型
- 02支持 pgx、pg、Bun、Ent、GORM 和 sqlx 等数据库库
- 03支持 L2、内积和余弦距离的最近邻查询
- 04包含 HNSW 和 IVFFlat 索引的创建示例
- 05提供 OpenAI、Cohere、混合检索和 COPY 批量导入的示例
适用场景
- 在基于 PostgreSQL 的 Go 服务中加入语义搜索或检索功能
- 将文本或图像嵌入与关系型数据存放在一起
- 基于向量相似度为物品排序,实现推荐功能
- 高效地将大规模嵌入数据导入 PostgreSQL
快速上手
- 1
安装核心 Go 包
go get github.com/pgvector/pgvector-go - 2
安装 pgx 集成包
go get github.com/pgvector/pgvector-go/pgx - 3
在 PostgreSQL 中启用 pgvector 扩展
CREATE EXTENSION IF NOT EXISTS vector
使用前须知
- 需要在服务器上安装 PostgreSQL 及 pgvector 扩展。
收录于专题
标签
常见问题
- pgvector-go 是什么?
- 为 Go 提供 pgvector(PostgreSQL 向量扩展)支持,可配合 pgx、pg、Bun、Ent、GORM 和 sqlx 使用。 pgvector-go 是一个 Go 库,让应用可以通过 pgvector 扩展在 PostgreSQL 中存储和查询向量嵌入。它提供稠密向量、半精度向量和稀疏向量的 Go 类型,并通过适配器与 pgx、pg、Bun、Ent、GORM 和 sqlx 直接配合使用。
- pgvector-go 可以免费使用吗?用的什么许可证?
- pgvector-go 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- pgvector-go 还在维护吗?
- 活跃维护中。pgvector-go 最近一次提交是在 2026年11月5日。
- pgvector-go 适合用来做什么?
- 在基于 PostgreSQL 的 Go 服务中加入语义搜索或检索功能 将文本或图像嵌入与关系型数据存放在一起 基于向量相似度为物品排序,实现推荐功能 高效地将大规模嵌入数据导入 PostgreSQL
- pgvector-go 怎么安装和运行?
- 安装核心 Go 包: go get github.com/pgvector/pgvector-go 安装 pgx 集成包: go get github.com/pgvector/pgvector-go/pgx 在 PostgreSQL 中启用 pgvector 扩展: CREATE EXTENSION IF NOT EXISTS vector
- 在哪里获取 pgvector-go?
- 源代码和安装说明在 GitHub 上:https://github.com/pgvector/pgvector-go
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
为 Django、SQLAlchemy、Psycopg、asyncpg 等 Python 数据库库提供 pgvector 向量类型与相似度搜索支持。
为 Node.js、Deno、Bun 的数据库客户端和 ORM 提供 pgvector 向量类型支持的 JavaScript/TypeScript 库。
Milvus 是一款开源分布式向量数据库,用于大规模存储和检索向量嵌入,常用于 AI 搜索与 RAG 应用。
Qdrant 是用 Rust 编写的向量相似度搜索引擎和向量数据库,支持带条件过滤的语义搜索与推荐。
为 Postgres 提供向量相似度搜索的开源扩展,可与关系型数据存放在一起。