27 ポイント 投稿者 xguru 2023-10-11 | 3件のコメント | WhatsAppで共有
  • 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件のコメント

 
secret3056 2023-10-13

まだ英語のみ対応しているようで、ドキュメントによると chinese_compatible トークナイザーは開発中とのことです。
さらに、Dockerイメージのサイズがかなり大きいですね。ほぼ8GBですが、素のPostgresイメージが400MB未満であることを考えると、いったいその上に何を載せたのか……

 
cosine20 2023-10-13

いいですね…!

 
wnswl 2023-10-11

RDS のようなマネージド DBMS でも対応してくれるといいですね!