postgres中文本列的索引

时间:2011-08-10 12:25:33

标签: postgresql indexing

我需要一些文本列的索引来增加查询的速度。我不确定我是否可以使用FTS。我的专栏中有类似的内容: 34565A43B2423FRR34AQ和我正在搜索:

WHERE column ~* '5A43B'

我希望能找到这个值。但是表格很大(大约有一百万行)而且时间效率不高。我可以使用什么样的索引?

2 个答案:

答案 0 :(得分:2)

FTS不适用于此,这样的字符串无法解析为令牌。有一个扩展可以解决这个问题:wildspeed。您必须先在数据库中安装此模块,然后才能使用它。索引可能非常大,但也可能非常快。

答案 1 :(得分:0)

如果通过将POSIX正则表达式更改为LIKE / ILIKE来重写查询,则可以使用 pg_trgm扩展名。

如:

WHERE column ~~* '%5A43B%'