如何使子串匹配查询在大型表上快速工作?

时间:2011-08-19 14:00:32

标签: postgresql query-optimization substring text-search

我有一个带有文本字段的大表,并希望对此表进行查询,以使用ILIKE查找包含给定子字符串的记录。它适用于小型表,但在我的情况下,它是一个相当耗时的操作,我需要它快速工作,因为我在我的网站的实时搜索字段中使用它。任何想法将不胜感激......

2 个答案:

答案 0 :(得分:1)

查看Waiting for 9.1 – Faster LIKE/ILIKEdepesz博文,了解使用trigrams的解决方案。

你需要使用尚未发布的Postgresql 9.1。而且你的写入会慢得多,因为三元组索引是巨大的。

全文搜索suggested by user12861只有在您搜索字词时才有用,而不是在搜索字符串。

答案 1 :(得分:0)

您可能希望查看全文索引。它有点复杂,也许其他人可以提供更好的描述,或者你可能尝试一些链接,例如这个: http://wiki.postgresql.org/wiki/Full_Text_Indexing_with_PostgreSQL