【特集】

期待度大のバージョンアップ - PostgreSQL 8.3の改良点を徹底分析

18 SQL関連の改良(3) - 全文検索

    石井達夫  [2007/11/20]

    全文検索(Full Text Search)は、テキストを全文検索するための機能である。もちろんLIKEや正規表現検索を使えばPostgreSQLでも全文検索は可能だが、データ量が増えると現実的な検索速度が出ない。そこで全文検索用の専用ソフトを組み合わせるソリューションが使われてきたが、この方法では、アプリケーションの負担が増えたり、管理するデータがデータベースと全文検索のインデックスの2つになることにより、管理者の負担が増えるなどデメリットがある。

    8.3では、データベースエンジン自体に全文検索の機能を組み込むことにより、デメリットが一掃され、全文検索ソフトのメリットだけを享受できるようになった。

    8.3における全文検索の使い方

    PostgreSQL 8.3の全文検索機能を使う方法はいろいろあるが、最も簡単なのはGINインデックスを追加することである。テーブル本体を変更する必要はないので、手軽に全文検索のメリットを体験できる。

    t1というテーブルがあり、そのtという列に対して全文検索をしたいのであれば、以下のようにGINインデックスを作成する。

    CREATE INDEX t1index ON t1 USING gin(to_tsvector('english',t));
    

    ここでto_tsvector()は、全文検索用のデータ型「TSVECTOR」に変換するための関数である。

    実際の検索は以下のように行う。

    SELECT * FROM t1 WHERE 'foo' @@ to_tsvector('english', t);
    
    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン