PlanetScale、Postgres向け全文検索拡張「TIN」をGA公開
原題: Tin: full-text search for Postgres
なぜ重要か
Postgresネイティブの全文検索は長年の弱点であり、ElasticsearchやTypesenseへの依存を減らす動きが加速する可能性がある。
PlanetScaleは2026年9月16日、PostgreSQL向け全文検索拡張機能「TIN(Text INdex)」の一般提供(GA)を開始した。Boolean式・フレーズクエリ・ファジー検索・BM25スコアリングなどを網羅し、同社のPostgres・Nekiデータベース全プランで即日利用可能。Stack Exchange由来の1億5000万件・85GBのデータセットを用いたベンチマーク結果も公開された。
PlanetScaleのエンジニアEric RidgeとPatrick Reynoldsが設計した「TIN」は、PostgreSQLに全文検索機能を追加する拡張機能だ。既存のテキスト検索インデックスがPostgres上で抱える課題——結合・複合WHERE句・継続的な更新・レプリケーション・バックアップ・トランザクション可視性(MVCC)の正確な処理——をすべて解決することを目標に開発された。
構文は簡潔で、`CREATE INDEX … USING tin(列名)` でインデックスを作成し、`==>` 演算子でクエリを実行する。サポートする機能は幅広い。Boolean式・フレーズ・スパンクエリ、ファジー・ワイルドカード・正規表現マッチング、大文字小文字やアクセント記号の正規化、`COUNT(*)` クエリ、BM25スコアによるトップk件取得などをすべてカバーする。
PlanetScaleによれば、Postgresには既に3つ以上のテキスト検索インデックスが存在するが、上記要件をすべて満たすものはなかったという。TINはその空白を埋める位置付けだ。
技術面の特徴として、48ビット文書識別子による効率的なドキュメント管理、作業省略(work elision)とベクトル化(vectorization)によるクエリ高速化、MVCC対応のセグメントとマージ戦略が挙げられる。
ベンチマークはStack Exchangeの質問・回答データ(85GB・1億5000万件)を使用。他にWikipedia全体、2.3TBのRedditコメント集、797GBの「pile」(研究論文・法律文書・パブリックドメイン書籍・Enronメール)でも検証済みとされる。ワークロードは、AND検索・OR検索・フレーズ検索の混合、カウントクエリ・トップk取得、書き込み並行時のクエリ性能など多面的に評価した。詳細なベンチマーク数値はブログ記事内で全公開されている。
TINは全プランの既存Postgres・Nekiデータベースで追加料金なしに利用できる。