F.10. dict_int

dict_int是一个全文检索的扩展字典模板的示例。这个示例字典的动机是控制整数 (有符号和无符号)的索引,允许在防止唯一码的数量过度增长时给整数索引, 这将大大的影响搜索的性能。

F.10.1. 配置

该字典接受两个选项:

  • maxlen参数声明整数数字的最大位数。缺省值是6。

  • rejectlong参数声明一个超长的整数是否应该被截断或忽略。如果rejectlongfalse(缺省),那么字典返回该整数前面的maxlen位。如果 rejectlongtrue,那么字典认为一个超长的整数是结束词, 所以它将不会被索引。请注意,这也意味着这样一个整数不能被搜索。

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;