it.xnews.jp
生成: 2026-09-19 読了 約 4 分 model: claude-haiku-4-5 原文: https://planetscale.com/blog/introducing-tin raw.md

PlanetScale、Postgres向け全文検索拡張「TIN」をGAリリース

PlanetScale は全文検索拡張 TIN(Text INdex)を Postgres および Neki データベース向けに GA リリースしたと発表した。TIN はブール式、フレーズクエリ、スパンクエリ、ファジーおよびワイルドカード マッチング、大文字小文字およびアクセント記号の正規化、COUNT(*) クエリ、BM25 スコアリングの上位 k クエリに対応し、複数のワークロードでベンチマーク結果を公開している。

PlanetScale が発表した TIN(Text INdex)は、Postgres および Neki データベース向けの全文検索拡張として GA リリースされた。TIN は、既存の Postgres 向け全文検索インデックスでは満たされていなかった要件をすべて満たすと同社は述べている。

TIN の機能

TIN はブール式、フレーズクエリ、スパンクエリをサポートする。また、ファジー、ワイルドカード、正規表現マッチングに対応し、大文字小文字およびアクセント記号の正規化、COUNT(*) クエリ、BM25 スコアリングの上位 k クエリを実装している。さらに、結合、複雑な WHERE 句、継続的な更新、レプリケーション、バックアップ、トランザクション可視性に対応している。

ベンチマーク結果

PlanetScale は ParadeDB、pg_textsearch、Postgres GIN に対して複数のワークロードでベンチマークを実施した。Stack Exchange データ(85 GB、150 万ドキュメント)、Wikipedia、Reddit コメント、研究論文を含むコーパスが使用された。

ベンチマークの結果は以下の通り:

インデックス構築時間は 8 分から 129 分の範囲で、インデックスサイズはコーパスの 33% から 61% の間であった。Stack Exchange コーパスでは、TIN のインデックスサイズは 50.7 GB、ParadeDB は 52.1 GB、pg_textsearch は 41.5 GB、Postgres GIN は 28.0 GB であった。

技術的特徴

TIN は Postgres の ctid(current tuple identifier)値をドキュメント識別子として直接使用する。ctid は tuple の物理的位置を特定する 48 ビット番号であり、上位 32 ビットはブロック番号、下位 16 ビットはブロック内のオフセットを示す。8KB の Postgres ページは最大 291 個の tuple を含むことができない。

TIN は初期インデックス作成用の不変セグメント、変更用の可変セグメントを生成する。削除されたドキュメントを処理するため、セグメント単位でリレーション生存ビットマップを保持し、ポスティング圧縮にはページレベルおよびオフセットレベルのビットマップを使用する。ページレベルビットマップは 256 ビットでベクトルレジスタに適合する。

筆者の見立て

この記事は元記事の事実のみに基づいて自動生成されました。

出典

PlanetScale、「Introducing TIN: full-text search for Postgres — PlanetScale」、https://planetscale.com/blog/introducing-tin(ParadeDB Benchmarker の報道による)

この記事をシェア