- RustベースのPostgres拡張で、フルテキスト検索を強化
- 最新の検索エンジンが利用するBM25アルゴリズム(検索結果の関連性スコアを計算)に基づく
- 現在Postgresが使用しているtsvectorベースの検索には2つの問題がある
- 性能 : 大規模テーブルでの検索が遅い
- 機能 : ファジー検索、関連性チューニング、BM25関連性スコアなどをサポートしていない
- PostgresとElasticSearchの検索機能の間にあるギャップを埋め、ElasticSearchのようなサービスをデータスタックに持ち込む必要をなくすことが目標
- pg_bm25の機能
- 100% Postgresネイティブ。外部依存なし
- RustベースのApache Lucene代替であるTantivyベース
- 100万行以上に対して、Postgresの基本検索/ソート関数であるtsquery/ts_rankと比べて20倍高速
- ファジー検索、集約、ハイライト、関連性チューニングをサポート
- ElasticSearchが使用するBM25アルゴリズムによる関連性スコア
- リアルタイム検索 : 新しいデータを手動で再インデックスせずに即座に検索可能
3件のコメント
まだ英語のみ対応しているようで、ドキュメントによると
chinese_compatibleトークナイザーは開発中とのことです。さらに、Dockerイメージのサイズがかなり大きいですね。ほぼ8GBですが、素のPostgresイメージが400MB未満であることを考えると、いったいその上に何を載せたのか……
いいですね…!
RDS のようなマネージド DBMS でも対応してくれるといいですね!