F.11. dict_int

F.11.1. 配置
F.11.2. 用法

dict_int是一个附加全文搜索词典模板的例子。这个例子词典的动机是控制整数(有符号和无符号)的索引,允许在阻止唯一词数量的过度增长(会严重影响搜索性能)时也能索引这些数字。

F.11.1. 配置

该词典接受两个选项:

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

  • rejectlong参数指定一个超长整数是否应该被截断或忽略。如果rejectlongfalse(默认),该词典返回该整数的第一个数字。如果rejectlongtrue,该词典将一个超长整数作为一个停用词对待,因此它将不会被索引。注意这也意味着这样一个整数不能被搜索。

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

但是现实世界的用法将涉及将它包括在一个Chapter 12中描述的文本搜索配置中。看起来像这样:

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