設定例

PostgreSQL 9.0.0文書
前のページ | 巻戻し | 第 12章全文検索 | 早送り | 次のページ

# 12.7. 設定例

テキスト検索設定は、文書を`tsvector`に変換する必要なすべてのオプションを指定します。すなわち、テキストをトークンに分解するパーサ、そしてトークンを語彙素に変換する辞書です。`to_tsvector`または`to_tsquery`を呼び出すたびに、処理を進めるためにテキスト検索設定が必要になります。設定パラメータのdefault_text_search_configは、デフォルトの設定を指定します。これは、明示的な設定が省略されたときにテキスト検索関数が使用します。`postgresql.conf`に設定するか、個々のセッションで`SET`コマンドを使って設定できます。

既定のテキスト検索設定がいくつか利用できます。また、カスタム設定を作るのも容易です。テキスト検索オブジェクトを管理する機能を実現するために、SQLコマンドが一通り用意されています。テキスト検索オブジェクトに関する情報を表示するpsqlコマンドもいくつか用意されています(項12.10)。

例として、組み込みの`english`設定のコピーを用いて、新しい`pg`設定を作ります。

    CREATE TEXT SEARCH CONFIGURATION public.pg ( COPY = pg_catalog.english );

PostgreSQL固有の同義語リストを使い、それを`$SHAREDIR/tsearch_data/pg_dict.syn`に格納します。ファイルの内容は以下のようになります。

    postgres    pg
    pgsql       pg
    postgresql  pg

同義語辞書を次のように定義します。

    CREATE TEXT SEARCH DICTIONARY pg_dict (
        TEMPLATE = synonym,
        SYNONYMS = pg_dict
    );

次に、Ispell辞書の`english_ispell`を登録します。これにはそれ自身の設定があります。

    CREATE TEXT SEARCH DICTIONARY english_ispell (
        TEMPLATE = ispell,
        DictFile = english,
        AffFile = english,
        StopWords = english
    );

ここで、`pg`設定に単語用のマッピングを設定します。

    ALTER TEXT SEARCH CONFIGURATION pg
        ALTER MAPPING FOR asciiword, asciihword, hword_asciipart,
                          word, hword, hword_part
        WITH pg_dict, english_ispell, english_stem;

組み込み設定が扱っているいくつかのトークンに関しては、インデックス付けと検索に扱わないことにします。

    ALTER TEXT SEARCH CONFIGURATION pg
        DROP MAPPING FOR email, url, url_path, sfloat, float;

これでここまで作った設定を試すことができます。

    SELECT * FROM ts_debug('public.pg', '
    PostgreSQL, the highly scalable, SQL compliant, open source object-relational
    database management system, is now undergoing beta testing of the next
    version of our software.
    ');

次に、セッションの中で新しい設定を使うようにします。この設定は、`public`スキーマの中に作られています。

    => \dF
       List of text search configurations
     Schema  | Name | Description
    ---------+------+-------------
     public  | pg   |

    SET default_text_search_config = 'public.pg';
    SET

    SHOW default_text_search_config;
     default_text_search_config
    ----------------------------
     public.pg

前のページ | ホーム | 次のページ
辞書 | 上に戻る | テキスト検索のテストとデバッグ