HeadlinesBriefing HeadlinesBriefing.com

PlanetScale テキスト検索パフォーマンス

Hacker News •
×

Ming Ying 著 2026年10月1日 2週間前、Planet Scale は Postgres 用の全文検索拡張機能 TIN を発表しました。彼らの発表記事では、Parade DB のテキスト検索機能のサブセット、特に BM25 ランク付けされたテキスト検索とドキュメントカウントにおいて、印象的なパフォーマンスの向上が報告されました。Planet Scale チームに敬意を表したいと思います。別の Postgres プラットフォームが検索に投資しているのを見るのは素晴らしいことであり、TIN には多くの思慮深いエンジニアリングが投入されたことは明らかです。

一つはっきりさせておきましょう:TIN は高速です(すべての Planet Scale ベンチマークで Parade DB 0.25 よりも少なくとも 8倍 高速です)。あまりに高速だったため、唯一理にかなった対応は黙ってパフォーマンス最適化の帽子をかぶることでした。2週間後、同じ Stack Exchange ベンチマークデータセット、ハーネス、マシンタイプを使用した BM25 ランク付けの前後の結果がこちらです。

興味深いのは、私たちがすぐにギャップを埋めたことではなく、どのように埋めたかです。TIN の記事は、そのパフォーマンスが Postgres の内部 ctid フィールドをドキュメント識別子として使用するという根本的なアーキテクチャの違いによるものだと主張しています。しかし、私たちはドキュメントの識別方法とはほとんど関係のないいくつかの最適化パスを通じてこのギャップを埋めました。

テキスト検索インデックスの核心はポスティングリストです。Parade DB の背後にある検索ライブラリ Tantivy は、そのポスティングに順次 u32 ドキュメント ID を使用します。Postgres は ctid 値によって行を識別します。TIN の記事の核心は、ctid 値をドキュメント識別子として直接使用することでこのマップが不要になり、効率的なビットマップ操作と可視性チェックが可能になることです。BM25 Top K クエリについては、私たちは懐疑的でした。

出典: Hacker News · 要約:HeadlinesBriefing