pgvector上にDiskANNベースのインデックスとラベルフィルタリングを追加し、ベクトル検索を高速化・低コスト化するRust製Postgres拡張。
pgvector/pgvector-go
pgvector PostgreSQL拡張をGoから利用するためのライブラリ。pgx、pg、Bun、Ent、GORM、sqlx向けのvector型とヘルパーを提供します。
- スター
- 356
- フォーク
- 16
- 未解決の Issue
- 0
- 最終コミット
- 一昨日
これは何?
pgvector-goは、pgvector拡張を通じてPostgreSQLにベクトル埋め込みを保存し、検索できるGoライブラリです。dense vector、half vector、sparse vectorのGo型に加え、これらの型をpgx、pg、Bun、Ent、GORM、sqlxで直接使えるようにするアダプターを提供します。
拡張機能の有効化、vectorカラムの定義、埋め込みの挿入、L2・内積・コサインなどの距離演算子を使った近傍検索まで、一般的な一連の手順をカバーしています。また、近似検索用のHNSWまたはIVFFlatインデックスの作成方法も紹介しています。Ent連携には、複数の距離関数を使うためのヘルパーが含まれています。
リポジトリ内のサンプルでは、OpenAIとCohereの埋め込み、Reciprocal Rank Fusionを使ったハイブリッド検索、sparse検索、レコメンデーション、Citusによる水平スケーリング、COPYによる一括読み込みを扱っています。
主な機能
- 01dense、half、sparse vector向けのGo型
- 02pgx、pg、Bun、Ent、GORM、sqlx向けのアダプター
- 03L2・内積・コサインの距離演算子を使った近傍検索
- 04HNSWおよびIVFFlatインデックスの作成例
- 05OpenAI、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
使う前に知っておきたいこと
- サーバーに pgvector 拡張機能がインストールされた PostgreSQL が必要です。
収録されている特集
トピック
よくある質問
- pgvector-go とは?
- pgvector PostgreSQL拡張をGoから利用するためのライブラリ。pgx、pg、Bun、Ent、GORM、sqlx向けのvector型とヘルパーを提供します。 pgvector-goは、pgvector拡張を通じてPostgreSQLにベクトル埋め込みを保存し、検索できるGoライブラリです。dense vector、half vector、sparse vectorの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
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Django、SQLAlchemy、Psycopg、asyncpg、PeeweeなどのPostgreSQLドライバーに、pgvectorのベクトル型と類似検索機能を追加するPythonライブラリ。
Node.js、Deno、BunのデータベースクライアントやORMでpgvectorのベクトル型を使えるようにする、JavaScript・TypeScript向けヘルパーライブラリです。
Milvusは、AI検索やRAGアプリケーション向けに、埋め込みを大規模に保存・検索できるオープンソースの分散型ベクトルデータベースです。
Qdrantは、セマンティック検索やレコメンデーション向けにペイロードフィルタリングを備えた、Rust製のベクトル類似検索エンジン兼ベクトルデータベースです。
Postgresにベクトル類似検索機能を追加し、リレーショナルデータとともにembeddingを保存・検索できるオープンソース拡張機能。