使用ts_vector列进行文本搜索

时间:2018-10-30 11:48:11

标签: sql postgresql indexing tsvector

很难找到有关ts_vector的信息,但是出于加速地址搜索的目的,address列上的简单索引并不能真正带来令人满意的结果。

为了规避此限制,我正在尝试将ts_vector与以下查询一起使用:

alter table mytable add tsv ts_vector;

update mytable set tsv = to_tsvector(address);

我对这个ts_vector列非常陌生,但是如果我创建了btree索引(或任何其他索引),而不是查询address列来查询ts_vector列,它会加快速度吗? ?

1 个答案:

答案 0 :(得分:2)

是的,但是必须是GIN索引:

CREATE INDEX ON mytable USING gin (tsv);

您不需要添加额外的列,您也可以这样做:

CREATE INDEX ON mytable USING gin (to_tsvector('english', address));

这样的索引可以与@@运算符一起使用。