选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.4 已于 2020 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

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

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

F.10.1. 配置

该词典接受两个选项:

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

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

F.10.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;

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。