создание индекса джина в postgreqsql - PullRequest
0 голосов
/ 15 октября 2019

Я использую «PostgreSQL 9.1.5», я пытаюсь создать индекс джина для текстового столбца. Он показывает сообщение об ошибке.

CREATE TABLE users (
    first_name text,
    last_name text
)


CREATE INDEX users_search_idx ON users USING gin (first_name,last_name)

У меня есть такие значения столбца (first_name)

"456fc0470a95c02bb42ef3e35fc81852"

Я пытаюсь запросить данные следующим образом.

SELECT count(*) FROM users where first_name like '%aeb%'

1 Ответ

1 голос
/ 15 октября 2019

Если вы хотите использовать поиск по триграмме, вам необходимо сначала установить расширение pg_trgm :

create extension pg_trgm; 

(это нужно сделать как суперпользователь)

Затем необходимо указать класс оператора, который будет использоваться в индексе:

CREATE INDEX users_search_idx 
   ON users USING gin (first_name gin_trgm_ops, last_name gin_trgm_ops);

Но комбинированный индекс для обоих столбцов не будет поддерживать, например, where last_name like% aeb% '`. Если вам нужно искать по двум столбцам по отдельности, вам нужны два индекса.

...