HeadlinesBriefing favicon HeadlinesBriefing.com

TIN: Postgres フルテキスト検索拡張 GA リリース

Hacker News •
×

お客様から最も多くリクエストされる Postgres の機能の 1 つがフルテキスト検索です。本日、TIN を発表できることを嬉しく思います。TIN は Postgres 用の高速で、高機能で、信頼性の高いフルテキスト検索拡張機能です。TIN は "Text INdex" の略で、まさにその機能を提供します。TIN はすべての Postgres および Neki データベースで GA リリースとして即座に利用可能です。お試しください: CREATE INDEX an_index_name ON table_name USING tin(text_column_name); SELECT * FROM table_name WHERE text_column_name ==> 'some words'。私たちが TIN を構築したのは、優れたテキスト インデックスが以下をサポートすべきだと考えるからです: ブール式、フレーズ クエリ、スパン クエリ。用語のファジー、ワイルドカード、正規表現マッチング。大文字小文字とアクセントのフォールディング。COUNT(*) クエリと BM25 スコアリングによるトップ k クエリ。Postgres の優れたテキスト インデックスは、これらすべての要件をサポートしながら、結合、フルテキストと他のカラム タイプにわたる複雑な WHERE 句、継続的な更新、レプリケーション、バックアップ、正しいトランザクションの可視性も処理する必要があります。Postgres 用の既存のテキスト検索インデックスは少なくとも 3 つありますが、それらのいずれもすべての要件を満たしていません。TIN は満たしています。TIN はまた、本当に驚くほど高速です。上記すべてのユースケースなどのパフォーマンスを評価するためにベンチマークを実施しました。結合、選言、フレーズ クエリ、およびそれら 3 つの混合を含むワークロードを試しました。ドキュメントをカウントするもの、または BM25 スコアでトップ k を要求するもの。ベンチマーク クエリ ワークロードと同時にクライアントがインデックスに新しいデータを書き込む場合と、書き込まない場合。TIN をさまざまなテキスト コーパスで測定しました: Wikipedia 全体、合計 2.3 TB の Reddit コメント コレクション、そして単に "pile" と呼ぶ混合ワークロード (オープンアクセスの研究論文、法的文書、パブリック ドメインの書籍、Enron メールで 797 GB)。この記事で共有するベンチマーク結果は、Stack Exchange の質問と回答のエクスポートから得られたものです: 1 億 5 千万ドキュメントを含む 85 GB のコーパス。