↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
开发快照。 PostgreSQL 20devel 尚未正式发布,内容仍可能变化。

F.12. dict_int — 用于整数的示例全文检索词典 #

dict_int 是一个全文检索附加词典模板的示例。引入这个示例词典是为了控制整数(有符号和无符号)的索引,使这类数字能够被索引,同时又避免不同词的数量过度增长,因为那会严重影响搜索性能。

该模块被认为是“受信任的”,也就是说,它可以由在当前数据库上具有 CREATE 权限的非超级用户安装。

F.12.1. 配置 #

该词典接受三个选项:

  • maxlen 参数指定整数词中允许的最大数字位数。默认值为 6。

  • rejectlong 参数指定超长整数应被截断还是忽略。如果 rejectlong 为 false(默认值),词典将返回该整数的前 maxlen 位数字。如果 rejectlong 为 true,词典会将超长整数视为停用词,因此不会为其建立索引。注意,这也意味着无法搜索这类整数。

  • absval 参数指定是否要移除整数词前导的“+”或“-”符号。默认值为 false。当其为 true 时,会先移除符号,再应用 maxlen。

F.12.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}

但在实际使用中,通常需要像第 12 章所述那样,将它包含到某个文本检索配置中。可能类似如下:

ALTER TEXT SEARCH CONFIGURATION english
    ALTER MAPPING FOR int, uint WITH intdict;

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.