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;
如果您在文档中发现任何不正确之处、与您对特定功能的体验不符或需要进一步说明的内容,请使用 此表单 报告文档问题。