dict_int
是全文搜索附加字典模板的一个示例。此示例字典的动机是控制整数(有符号和无符号)的索引,允许对这些数字进行索引,同时防止唯一单词数量的过度增长,这会严重影响搜索性能。
此模块被认为是“受信任的”,也就是说,拥有当前数据库CREATE
权限的非超级用户也可以安装它。
该字典接受三个选项
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;
如果您在文档中发现任何不正确、与您在特定功能方面的经验不符或需要进一步澄清的内容,请使用此表单报告文档问题。