dict_int
は、全文検索用の辞書テンプレートの追加例です。
この辞書例の目的は、検索性能に大きく影響する一意な単語数の急激な増大を防ぎながら、こうした数のインデックス付けを行うことができるように、整数(符号付きおよび符号無)のインデックス付けを制御することです。
このモジュールは「trusted」と見なされます。つまり、現在のデータベースに対してCREATE
権限を持つ非スーパーユーザがインストールできます。
この辞書は3つのオプションを受け付けます。
maxlen
パラメータは整数型の単語で許される最大桁数を指定します。
デフォルト値は6です。
rejectlong
パラメータは、桁数を超える整数を切り詰めるか無視するかを指定します。
rejectlong
がfalse
(デフォルト)ならば、辞書は整数の先頭のmaxlen
桁を返します。
rejectlong
がtrue
ならば、辞書は桁数を超えた整数をストップワードとして扱います。
このためインデックス付けされません。
これはまた、こうした整数を検索することができないことを意味します。
absval
パラメータは、先頭の「+
」または「-
」符号を整数型の単語から削除するかどうかを指定します。
デフォルトはfalse
です。
true
の場合、maxlen
が適用される前に符号は削除されます。
dict_int
拡張機能をインストールすると、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;