Dict int

From PostgreSQL 中文维基, PostgreSQL 中文站, PostgreSQL 中国社区, PostgreSQL Chinese community

Jump to: navigation, search

[编辑] dict_int

dict_int 是一个用于全文搜索的附加字典模版的例子。这个例子字典的目的是用来控制对整数的索引(符号整数和无符号整数),允许这样的数可以被索引的同时又避免唯一字的过份增长,唯一字的多少会极大地影响搜索性能。

[编辑] 配置

这个字典接受两个选项:

  • maxlen 参数声明在一个整数字里面允许的最大的数据位数。缺省是 6。
  • rejectlong 参数声明一个超长的整数是应该截断还是忽略。如果rejectlong是 false (缺省),那么字典返回整数的头maxlen位。如果rejectlong是 true,那么字典会把超长的整数当做一个禁止字,所以它不会被索引。请主意这也意味着这样的整数也不能搜索。

[编辑] 用法

运行安装脚本会创建一个文本搜索模版 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}

不过,在现实世界里的使用通常是会把他包括在一个文本搜索配置中,像第十二章描述的那样。看起来会像下面这样:

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