F.10. dict_int
dict_int
是一个全文检索的扩展字典模板的示例。这个示例字典的动机是控制整数 (有符号和无符号)的索引,允许在防止唯一码的数量过度增长时给整数索引, 这将大大的影响搜索的性能。
F.10.1. 配置
该字典接受两个选项:
maxlen
参数声明整数数字的最大位数。缺省值是6。rejectlong
参数声明一个超长的整数是否应该被截断或忽略。如果rejectlong
为false
(缺省),那么字典返回该整数前面的maxlen
位。如果rejectlong
为true
,那么字典认为一个超长的整数是结束词, 所以它将不会被索引。请注意,这也意味着这样一个整数不能被搜索。
F.10.2. 用法
安装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}
但是真实的使用情况将包括包含它在一个文本搜索配置里,就像Chapter 12 里描述的那样。可能看起来像这样:
ALTER TEXT SEARCH CONFIGURATION english
ALTER MAPPING FOR int, uint WITH intdict;