ChuckHend/pg_vectorize

Full-text and semantic search on any Postgres

解決する課題

pg_vectorize は、テキストを埋め込みベクトルに変換するプロセスを自動化し、検索のオーケストレーションを管理することで、Postgres を VectorDB に変えます。ベクトル検索、全文検索、ハイブリッド検索の保守をデータベース環境内で行うことで、Retrieval‑Augmented Generation(RAG)や検索エンジンの構築をシンプルにします。

仕組み

本プロジェクトは 2 つのデプロイモードを提供します。

  1. HTTP Server: Postgres に接続し、埋め込みジョブの作成や検索を行う REST API を公開するスタンドアロンサービスです。拡張機能をインストールできないマネージド DB 向けに推奨されます。
  2. Postgres Extension: データベース内部で実装され、vectorize.table()vectorize.search() といった SQL 関数を使って直接操作できます。

pgvector を使った類似検索、pgmq によるバックグラウンドワーカーのオーケストレーション、SentenceTransformers による埋め込み生成を活用しています。

対象ユーザー

Postgres を主なベクトルストアとして利用し、埋め込みパイプラインを自動化したい RAG アプリケーションや検索エンジンを構築する開発者向けです。

ハイライト

  • ハイブリッド検索: セマンティック検索、全文検索、ハイブリッド検索をサポート。
  • 自動メンテナンス: 更新や新規データを継続的に監視し、埋め込みを自動で更新。
  • 柔軟なデプロイ: マネージド DB 用の REST API と、セルフホスト Postgres 用のネイティブ SQL 拡張の両方を提供。
  • 統合: pgvector や SentenceTransformers といった実績あるツール上に構築。