ChuckHend/pg_vectorize
Full-text and semantic search on any Postgres
解決する課題
pg_vectorize は、テキストを埋め込みベクトルに変換するプロセスを自動化し、検索のオーケストレーションを管理することで、Postgres を VectorDB に変えます。ベクトル検索、全文検索、ハイブリッド検索の保守をデータベース環境内で行うことで、Retrieval‑Augmented Generation(RAG)や検索エンジンの構築をシンプルにします。
仕組み
本プロジェクトは 2 つのデプロイモードを提供します。
- HTTP Server: Postgres に接続し、埋め込みジョブの作成や検索を行う REST API を公開するスタンドアロンサービスです。拡張機能をインストールできないマネージド DB 向けに推奨されます。
- Postgres Extension: データベース内部で実装され、
vectorize.table()やvectorize.search()といった SQL 関数を使って直接操作できます。
pgvector を使った類似検索、pgmq によるバックグラウンドワーカーのオーケストレーション、SentenceTransformers による埋め込み生成を活用しています。
対象ユーザー
Postgres を主なベクトルストアとして利用し、埋め込みパイプラインを自動化したい RAG アプリケーションや検索エンジンを構築する開発者向けです。
ハイライト
- ハイブリッド検索: セマンティック検索、全文検索、ハイブリッド検索をサポート。
- 自動メンテナンス: 更新や新規データを継続的に監視し、埋め込みを自動で更新。
- 柔軟なデプロイ: マネージド DB 用の REST API と、セルフホスト Postgres 用のネイティブ SQL 拡張の両方を提供。
- 統合: pgvector や SentenceTransformers といった実績あるツール上に構築。