Использование столбца ts_vector для текстового поиска - PullRequest
0 голосов
/ 30 октября 2018

Трудно найти информацию об этой ts_vector вещи, но в целях ускорения поиска адреса простой индекс в столбце адресов не дает удовлетворительных результатов.

Чтобы обойти это ограничение, я пытаюсь использовать ts_vector со следующим запросом:

alter table mytable add tsv ts_vector;

update mytable set tsv = to_tsvector(address);

Я очень незнаком с этим столбцом ts_vector, но будет ли он ускорен, если я создам индекс btree (или любой другой индекс) и вместо того, чтобы запрашивать столбец адреса для запроса столбца ts_vector вместо этого?

1 Ответ

0 голосов
/ 30 октября 2018

Да, но это должен быть индекс GIN:

CREATE INDEX ON mytable USING gin (tsv);

Вам не нужно добавлять этот дополнительный столбец, вы также можете сделать:

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

Такой индекс можно использовать с оператором @@.

...