PostgreSQL 9.0.4文書 | ||||
---|---|---|---|---|
前のページ | 巻戻し | 付録 F. 追加で提供されるモジュール | 早送り | 次のページ |
dict_xsyn(拡張類義語辞書)は全文検索用の辞書テンプレートの追加例です。 この種類の辞書は、単語を類義語の集まりに置き換え、その類義語のいずれかを使用して単語を検索できるようにします。
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を参照してください。
インストールスクリプトを実行すると、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;