無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

F.11. dict_xsyn

dict_xsyn (拡張類義語辞書)は全文検索用の辞書テンプレートの追加例です。 この種類の辞書は、単語を類義語の集まりに置き換え、その類義語のいずれかを使用して単語を検索できるようにします。

F.11.1. 設定

dict_xsyn 辞書は以下のオプションを受け付けます。

  • matchorig は辞書で元の単語が受け付けられるか否かを制御します。 デフォルトは true です。

  • matchsynonyms は類義語が辞書で受け付けられるか否かを制御します。 デフォルトは false です。

  • keeporig は元の単語を辞書出力に含めるか否かを制御します。 デフォルトは true です。

  • keepsynonyms は類義語が辞書出力に含められるか否かを制御します。 デフォルトは true です。

  • rules は、類義語リストを含むファイルのベース名です。 このファイルは $SHAREDIR/tsearch_data/ $SHAREDIR PostgreSQL インストレーションの共有データ用ディレクトリを示します)に格納しなければなりません。 この名前は .rules で終わらなければなりません(これは rules パラメータには含まれません)。

rulesファイルは以下の書式です。

  • 各行は、行の先頭で与えられる1つの単語に対する類義語の集まりを表します。 類義語は以下のように空白文字で区切られます。

    word syn1 syn2 syn3

  • シャープ記号( # )はコメント区切り記号です。 行の任意の位置に記載することができます。 行の残りの部分は飛ばされます。

例として $SHAREDIR/tsearch_data/ にインストールされる xsyn_sample.rules を参照してください。

F.11.2. 使用方法

dict_xsyn 拡張機能をインストールすると、 xsyn_template テキスト検索テンプレートが作成され、それに基づき、デフォルトのパラメータを持った xsyn 辞書が作成されます。 例えば以下のように、パラメータを変更することができます。

mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=false);
ALTER TEXT SEARCH DICTIONARY

またこのテンプレートに基づいた新しい辞書を作成することもできます。

辞書を試験するためには以下を試してください。

mydb=# SELECT ts_lexize('xsyn', 'word');
      ts_lexize
-----------------------
 {syn1,syn2,syn3}

mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=true);
ALTER TEXT SEARCH DICTIONARY

mydb=# SELECT ts_lexize('xsyn', 'word');
      ts_lexize
-----------------------
 {word,syn1,syn2,syn3}

mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=false, MATCHSYNONYMS=true);
ALTER TEXT SEARCH DICTIONARY

mydb=# SELECT ts_lexize('xsyn', 'syn1');
      ts_lexize
-----------------------
 {syn1,syn2,syn3}

mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=true, MATCHORIG=false, KEEPSYNONYMS=false);
ALTER TEXT SEARCH DICTIONARY

mydb=# SELECT ts_lexize('xsyn', 'syn1');
      ts_lexize
-----------------------
 {word}

現実世界で使用する場合は、 第12章 で説明されるテキスト検索設定内にこれを含むようになるでしょう。 以下のようになります。

ALTER TEXT SEARCH CONFIGURATION english
    ALTER MAPPING FOR word, asciiword WITH xsyn, english_stem;


powered by SEO.CUG.NET