PostgreSQL:自动完成最快的索引

德纳克

我有一张表格,其中包含一栏和一亿行文本。文本是简单的1-5个单词的句子。

我的目标是拥有可以与自动完成功能一起使用的超快速查询。因此,用户类型和我会尽快得到结果。

我尝试了许多不同的索引和tsvector功能。

  1. 什么是满足我需求的好的解决方案/组合?
  2. 我还能使用哪些其他解决方案来实现目标并相对快速地进行设置?
劳伦兹·阿尔伯

如果要用前缀匹配完整文本,则SQL查询为

SELECT words FROM phrases WHERE words LIKE 'user input%';

具有text_pattern_ops操作符类的常规B树索引应该可以解决问题。

如果短语太长而无法被索引,或者您想节省空间,则仅对前缀进行索引和查询:

CREATE INDEX ON phrases (substr(words, 1, 50) text_pattern_ops);

然后用

SELECT words FROM phrases WHERE substr(words, 1, 50) LIKE 'user input%';

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章