Следуя заданному вопросу о том, как я могу увеличить скорость в одном из методов поиска SQL, мне было рекомендовано обновить мою таблицу, чтобы использовать полнотекстовый поиск. Это то, что я сейчас сделал, используя индексы Gist, чтобы ускорить поиск. По некоторым "простым" запросам я заметил заметное увеличение, которым я очень доволен.
Однако мне трудно найти частичные слова. Например, у меня есть несколько записей, содержащих слово Squire (454), и у меня есть несколько записей, содержащих Squirrel (173). Теперь, если я ищу Squire, он возвращает только 454 записи, но я также хочу, чтобы он также возвращал записи Squirrel.
Мой запрос выглядит следующим образом
SELECT title
FROM movies
WHERE vectors @@ to_tsoquery('squire');
Я думал, что могу сделать to_tsquery('squire%')
, но это не работает.
Как получить его для поиска частичных совпадений?
Кроме того, в моей базе данных у меня есть записи, которые являются фильмами и другими, которые являются просто телешоу. Они дифференцируются по названию, так что "Munsters" - это телешоу, в то время как The Munsters - это фильм шоу. То, что я хочу сделать, это поиск только телешоу и только фильмов. Любая идея о том, как я могу это достичь?
Отношения Anthoni