supervc-stack/VectorChord-bm25
Native BM25 Ranking Index in PostgreSQL
何を解決するか
VectorChord-BM25 は PostgreSQL 用のネイティブな BM25 ランキングアルゴリズムを提供し、標準の PostgreSQL フルテキスト検索(tsvector と GIN インデックスを使用)が現代的な関連性スコアリングを欠いているというギャップを埋めます。ユーザーは Elasticsearch などの外部エンジンに検索処理をオフロードする必要なく、データベース内で効率的かつ高品質なフルテキスト検索とランク付けを直接実行できます。
動作方法
このプロジェクトは、BM25 ランキング用の Block-WeakAnd アルゴリズムを PostgreSQL 拡張として実装しています。専用の bm25vector データ型(トークン ID とその頻度を格納するスパースベクトル)と、対応する bm25 インデックスを導入し、検索とランク付けプロセスを高速化します。pg_tokenizer.rs と連携して、事前学習済みモデル(例:BERT)または特定のドメインや言語向けにカスタム学習されたトークナイザー(中国語には Jieba、日本語には Lindera をサポート)を使用して、生テキストをこれらのスパースベクトルに変換します。
対象ユーザー
PostgreSQL を使用し、プロフェッショナルレベルのフルテキスト検索と関連性ランク付け(BM25)を必要とする開発者およびデータベース管理者。外部の検索クラスタを管理する複雑さを避けつつ、ネイティブなデータベース体験を維持したい人向けです。
特徴
- ネイティブ PostgreSQL 統合:カスタム演算子とインデックスとして実装され、外部の代替品よりも直感的な API を提供します。
- 柔軟なトークナイズ:事前学習済みモデル、カスタム学習済みモデル、およびスペース区切りでない言語向けの専用プリトークナイザーをサポートします。
- 高パフォーマンス:Block-WeakAnd アルゴリズムを使用して、最も関連性の高いドキュメントの取得を高速化します。
- スパースベクトルストレージ:
bm25vector型を使用して語彙 ID と語句頻度を効率的に格納します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト