У меня есть запрос, который делает ILIKE в 11 строковых или текстовых полях таблицы, которая не является большой (500 000), но для ILIKE явно слишком большая, поисковый запрос занимает около 20 секунд. База данных - postgres 8.4
Мне нужно реализовать этот поиск намного быстрее.
Что пришло мне в голову:
-
Я сделал дополнительный столбец TVECTOR, собранный из всех столбцов, которые нужно искать, и создал на нем полный текстовый индекс. Полнотекстовый поиск был довольно быстрым. Но... Я не могу отобразить этот тип TVECTOR в моем .hbms. Таким образом, эта идея отпала (в любом случае я стал ее скорее временным решением).
-
Поиск в спящем режиме. (Слышал об этом в первый раз сегодня) Кажется, что это обещание, но мне нужно испытать это, потому что я не хочу входить в новый API, возможно, не самый простой, для чего-то, что можно было бы сделать проще.
-
Lucene
В любом случае это произошло сейчас с этой таблицей, но я хотел бы, чтобы решение было более общим и применялось для будущих случаев, связанных с поиском полного текста.
Все советы оценены!
Thanx