Как сделать так, чтобы запрос на совпадение подстрок быстро работал на большой таблице? - PullRequest
3 голосов
/ 19 августа 2011

У меня есть большая таблица с текстовым полем, и я хочу сделать запросы к этой таблице, чтобы найти записи, которые содержат данную подстроку, используя ILIKE.Он отлично работает на небольших столах, но в моем случае это довольно трудоемкая операция, и мне нужно, чтобы она работала быстро, потому что я использую ее в поле поиска в реальном времени на своем веб-сайте.Любые идеи будут оценены ...

Ответы [ 2 ]

1 голос
/ 22 августа 2011

Проверка Ожидание 9.1 - быстрее LIKE / ILIKE сообщение в блоге от depesz для решения с использованием триграмм.

Вам нужно будет использовать еще не выпущенный Postgresql 9.1за это.И тогда ваши записи будут намного медленнее, так как индексы триграмм огромны.

Полнотекстовый поиск , предложенный user12861 , поможет, только если вы ищете слова, а не подстроки.

0 голосов
/ 19 августа 2011

Вы, вероятно, хотите посмотреть на полнотекстовое индексирование.Это немного сложно, может быть, кто-то другой может дать лучшее описание, или вы можете попробовать несколько ссылок, например, таких как: http://wiki.postgresql.org/wiki/Full_Text_Indexing_with_PostgreSQL

...