我有一张表格,其中包含一栏和一亿行文本。文本是简单的1-5个单词的句子。
我的目标是拥有可以与自动完成功能一起使用的超快速查询。因此,用户类型和我会尽快得到结果。
我尝试了许多不同的索引和tsvector
功能。
如果要用前缀匹配完整文本,则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] 删除。
我来说两句