12.11. 限制 #

PostgreSQL 的文本搜索功能的当前限制如下:

  • 每个词素(lexeme)的长度必须小于 2KB。

  • tsvector(词素 + 位置)的长度必须小于 1MB。

  • 词素的数量必须小于 264

  • tsvector 中的位置值必须大于 0 且小于或等于 16,383。

  • tsquery<N> (FOLLOWED BY) 运算符中的匹配距离不能超过 16,384。

  • 每个词素最多只能有 256 个位置。

  • tsquery 中的节点(词素 + 运算符)数量必须小于 32,768。

作为对比,PostgreSQL 8.1 的文档包含 10,441 个唯一单词,总计 335,420 个单词,其中最频繁的单词“postgresql”在 655 个文档中被提及了 6,127 次。

另一个例子 - PostgreSQL 邮件列表的存档包含 910,989 个唯一单词,在 461,020 条消息中有 57,491,343 个词素。