Repolode
pgvector

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. 1

    安装核心 Go 包

    go get github.com/pgvector/pgvector-go
  2. 2

    安装 pgx 集成包

    go get github.com/pgvector/pgvector-go/pgx
  3. 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 数据每日更新。

相关项目