dkn*_*ack 2 postgresql full-text-search
我有一张表格,其中包含一栏和一亿行文本。文本是简单的1-5个单词的句子。
我的目标是拥有可以与自动完成功能一起使用的超快速查询。因此,用户类型和我会尽快得到结果。
我尝试了许多不同的索引和tsvector功能。
如果要用前缀匹配完整文本,则SQL查询为
SELECT words FROM phrases WHERE words LIKE 'user input%';
Run Code Online (Sandbox Code Playgroud)
具有text_pattern_ops操作符类的常规B树索引应该可以解决问题。
如果短语太长而无法被索引,或者您想节省空间,则仅对前缀进行索引和查询:
CREATE INDEX ON phrases (substr(words, 1, 50) text_pattern_ops);
Run Code Online (Sandbox Code Playgroud)
然后用
SELECT words FROM phrases WHERE substr(words, 1, 50) LIKE 'user input%';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1364 次 |
| 最近记录: |