dict_intは、全文検索用の辞書テンプレートの追加例です。 この辞書例の目的は、検索性能に大きく影響する一意な単語数の急激な増大を防ぎながらこうした数のインデックス付けを行うことができるように、整数(符号付きおよび符号無)のインデックス付けを制御することです。
この辞書は2つのオプションを受け付けます。
maxlenパラメータは整数型の単語で許される最大桁数を指定します。 デフォルト値は6です。
rejectlongパラメータは、桁数を超える整数を切り詰めるか無視するかを指定します。 rejectlongがfalse(デフォルト)ならば、辞書は整数の先頭のmaxlen桁を返します。 rejectlongがtrueならば、辞書は桁数を超えた整数をストップワードとして扱います。 このためインデックス付けされません。 これはまた、こうした整数を検索することができないことを意味します。
インストールスクリプトを実行すると、intdict_templateテキスト検索テンプレートとこれに基づき、そのデフォルト値でintdict辞書が作成されます。 以下のようにパラメータを変更することができます。
mydb# ALTER TEXT SEARCH DICTIONARY intdict (MAXLEN = 4, REJECTLONG = true); ALTER TEXT SEARCH DICTIONARY
または、このテンプレートを基に新しい辞書を作成してください。
辞書を試験するためには以下を試してください。
mydb# select ts_lexize('intdict', '12345678'); ts_lexize ----------- {123456}
しかし、現実世界で使用する場合は、第12章で説明されるテキスト検索設定内にこれを含むようになるでしょう。 以下のようになります。
ALTER TEXT SEARCH CONFIGURATION english ALTER MAPPING FOR int, uint WITH intdict;