F.11. dict_int

dict_int是用于全文搜索的附加字典模板的示例。此示例字典的动机是控制整数(有符号和无符号)的索引,允许对这些数字进行索引,同时防止唯一单词的数量过度增长,这极大地影响了搜索性能。

F.11.1. Configuration

字典接受两个选项:

  • maxlen参数指定整数字中允许的最大位数。预设值为 6.

  • rejectlong参数指定是否应截断或忽略超长整数。如果rejectlongfalse(默认值),则词典返回整数的前maxlen个数字。如果rejectlongtrue,则字典会将超长整数视为停用词,因此不会对其进行索引。请注意,这也意味着无法搜索这样的整数。

F.11.2. Usage

安装dict_intextensions 会使用默认参数创建一个文本搜索模板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;