Postgres向け全文検索拡張機能「TIN」が登場
Tin: full-text search for Postgres
Postgres向けの全文検索拡張機能「TIN (Text INdex)」がリリースされた。TINは、ブーリアン式、あいまい検索、ワイルドカード、正規表現マッチング、大文字小文字・アクセントの無視、COUNT(*)およびBM25スコアによるトップkクエリをサポートする。既存のPostgres向け全文検索インデックスと比較して、TINは特に高速であり、大規模データセット(Wikipedia、Redditコメント2.3TB、研究論文・法律文書・書籍・Enronメール797GBなど)でのベンチマークでも優れた性能を示した。TINはPostgresのctid(Current Tuple Identifier)を直接利用することで、他のインデックス実装が別途必要とするctidマッピングデータ構造を不要にし、処理を高速化している。また、ベクトル命令を活用したページレベルおよびオフセットレベルのビットマップエンコーディングにより、特にAND/OR演算やCOUNT(*)クエリにおいて高いパフォーマンスを発揮する。MVCC(Multi-Version Concurrency Control)にも対応しており、トランザクションの可視性も保証される。ベンチマークでは、TINは他のインデックスと比較して、クエリあたりのスループットが最大25倍、レイテンシが最大1356倍向上し、ディスク読み取り量も大幅に削減された。TINは、eコマース、法律文書検索、写真タグ付けなどのアプリケーションで活用できる。
- Postgres向け全文検索拡張機能「TIN (Text INdex)」がリリースされ、ブーリアン式・あいまい検索・ワイルドカード・正規表現・大文字小文字/アクセント無視・COUNT(*)・BM25スコアによるトップkクエリをサポート
- ベンチマークでクエリあたりスループット最大25倍、レイテンシ最大1356倍の改善、ディスク読み取り量の大幅削減を達成したと主張
- Postgresのctidを直接利用してctidマッピング用データ構造を不要にし、ベクトル命令によるページ/オフセットレベルのビットマップエンコーディングでAND/OR演算やCOUNT(*)を高速化
- Wikipedia、Redditコメント2.3TB、研究論文・法律文書・書籍・Enronメール797GBといった大規模データセットで性能を実証
- MVCCに対応しトランザクションの可視性を保証、eコマース・法律文書検索・写真タグ付けなどへの適用を想定
TINはPostgreSQLの全文検索という成熟領域に、ctid直利用とベクトル命令によるビットマップエンコーディングで切り込み、クエリあたりスループット最大25倍・レイテンシ最大1356倍という非連続的な性能改善を主張している点が注目される。データベース周辺はOSS拡張が事実上の標準を奪う構造があり、もしこれが実運用で再現できれば、Elasticsearch等の専用検索エンジンを必要としない構成が増え、検索ミドルウェア市場やベクトルDB/全文検索SaaSの置き換えリスク・恩恵を生む。MVCC準拠と大規模ベンチマーク(Wikipedia、2.3TBのRedditコメント等)の再現性、ライセンスと商用サポート体制、主要クラウドDBへの採用動向を継続的に確認したい。