Django、SQLAlchemy、Psycopg、asyncpg、PeeweeなどのPostgreSQLドライバーに、pgvectorのベクトル型と類似検索機能を追加するPythonライブラリ。
timescale/pgvectorscale
pgvector上にDiskANNベースのインデックスとラベルフィルタリングを追加し、ベクトル検索を高速化・低コスト化するRust製Postgres拡張。
代替できる製品:Pinecone
- スター
- 3,161
- フォーク
- 160
- 未解決の Issue
- 19
- 最終コミット
- 24 日前
これは何?
pgvectorscaleは、オープンソースのベクトルデータ拡張であるpgvectorと連携し、埋め込み列に対する近似最近傍探索を高速化するPostgreSQL拡張です。MicrosoftのDiskANN研究に着想を得たStreamingDiskANNインデックス型と、Statistical Binary Quantizationに基づく圧縮ストレージレイアウトを追加します。
ラベルベースのフィルタ付きベクトル検索にも対応しているため、類似度によるランキングと、smallint[]列に対する配列の重複フィルタを組み合わせたクエリを実行できます。任意のWHERE句もサポートしますが、ベクトル検索後に後段フィルタとして適用されます。コサイン距離、L2距離、内積距離を、pgvectorと同じ演算子で利用できます。
このプロジェクトはCではなく、PGRXフレームワークを使ってRustで実装されています。ビルド済みDockerイメージを使うか、ソースからビルドして実行できます。また、Timescale Cloudの拡張機能としても提供されています。
主な機能
- 01pgvectorの埋め込み列向けにStreamingDiskANNインデックスを追加します。
- 02Statistical Binary Quantizationによる圧縮ベクトルストレージを利用します。
- 03&&配列重複演算子を使ったラベルベースのフィルタ付き検索に対応します。
- 04pgvectorと同じコサイン距離、L2距離、内積距離の演算子に対応します。
- 05精度と速度のバランスを調整できる、構築時およびクエリ時のパラメーターを備えています。
ユースケース
- 既存のPostgreSQLデータベース内で、セマンティック検索やRAGの検索処理を実行する。
- Postgresをセルフホストして、数千万件規模の埋め込みデータのコストを抑える。
- カテゴリラベルやメタデータ条件で最近傍検索の結果を絞り込む。
クイックスタート
- 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 とは?
- pgvector上にDiskANNベースのインデックスとラベルフィルタリングを追加し、ベクトル検索を高速化・低コスト化するRust製Postgres拡張。 pgvectorscaleは、オープンソースのベクトルデータ拡張であるpgvectorと連携し、埋め込み列に対する近似最近傍探索を高速化するPostgreSQL拡張です。MicrosoftのDiskANN研究に着想を得たStreamingDiskANNインデックス型と、Statistical Binary Quantizationに基づく圧縮ストレージレイアウトを追加します。
- pgvectorscale は無料で使えますか?ライセンスは?
- pgvectorscale は PostgreSQL ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- pgvectorscale は今もメンテナンスされていますか?
- 活発にメンテナンス中。pgvectorscale の最終コミットは 2026年10月14日 です。
- pgvectorscale は何に使えますか?
- 既存のPostgreSQLデータベース内で、セマンティック検索やRAGの検索処理を実行する。 Postgresをセルフホストして、数千万件規模の埋め込みデータのコストを抑える。 カテゴリラベルやメタデータ条件で最近傍検索の結果を絞り込む。
- 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
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
pgvector PostgreSQL拡張をGoから利用するためのライブラリ。pgx、pg、Bun、Ent、GORM、sqlx向けのvector型とヘルパーを提供します。
Qdrantは、セマンティック検索やレコメンデーション向けにペイロードフィルタリングを備えた、Rust製のベクトル類似検索エンジン兼ベクトルデータベースです。
Node.js、Deno、BunのデータベースクライアントやORMでpgvectorのベクトル型を使えるようにする、JavaScript・TypeScript向けヘルパーライブラリです。
Milvusは、AI検索やRAGアプリケーション向けに、埋め込みを大規模に保存・検索できるオープンソースの分散型ベクトルデータベースです。
Postgresにベクトル類似検索機能を追加し、リレーショナルデータとともにembeddingを保存・検索できるオープンソース拡張機能。