On this page
F.11. dict_int
dict_int
是用于全文搜索的附加字典模板的示例。此示例字典的动机是控制整数(有符号和无符号)的索引,允许对这些数字进行索引,同时防止唯一单词的数量过度增长,这极大地影响了搜索性能。
F.11.1. Configuration
字典接受两个选项:
maxlen
参数指定整数字中允许的最大位数。预设值为 6.rejectlong
参数指定是否应截断或忽略超长整数。如果rejectlong
为false
(默认值),则词典返回整数的前maxlen
个数字。如果rejectlong
是true
,则字典会将超长整数视为停用词,因此不会对其进行索引。请注意,这也意味着无法搜索这样的整数。
F.11.2. Usage
安装dict_int
extensions 会使用默认参数创建一个文本搜索模板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;