Указатели на текстовые столбцы в postgres - PullRequest
1 голос
/ 10 августа 2011

Мне нужен индекс для некоторых текстовых столбцов, чтобы увеличить количество запросов. Я не совсем уверен, могу ли я использовать FTS или нет. У меня есть в моей колонке что-то вроде этого: 34565A43B2423FRR34AQ и я ищу таким образом:

WHERE column ~* '5A43B'

и я ожидаю, что это значение будет найдено. Но таблица большая (около миллиона строк) и время неэффективно. Какой индекс я могу использовать?

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

FTS не будет работать для этого, такая строка не может быть проанализирована в токены.Есть расширение, которое может сделать трюк: wildspeed .Вы должны установить этот модуль в базу данных, прежде чем использовать его.Индекс может быть очень большим, но он также может быть очень быстрым.

0 голосов
/ 13 сентября 2012

Если вы переписываете свой запрос, изменяя регулярное выражение POSIX на LIKE / ILIKE, вы можете использовать расширение pg_trgm .

Например:

WHERE column ~~* '%5A43B%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...