Я пытаюсь использовать гем pg_search в сочетании с многопользовательским приложением, поддерживаемым гемом квартиры. Квартира разделяет мои данные со схемой для каждого арендатора. Поиск внутри каждого клиента хорошо работает с настройками по умолчанию pg_search, но у меня проблемы с его использованием с включенным pg_trgm.
Я включил расширение pg_trgm в своей базе данных, добавив отдельную схему под названием «общие расширения» и включив для нее расширение pg_trgm. Эта схема всегда включается в путь поиска при настройке квартиры:
config.persistent_schemas = %w{ shared_extensions }
Но когда я пытаюсь выполнить поиск модели по триграмме, я получаю сообщение об ошибке.
pg_search_scope :search_by_name, against: :name, using: :trigram
Meeting.search_by_name('blabla').first
PG::UndefinedFunction: ERROR: operator does not exist: text % unknown
Это заставляет меня думать, что pg_trgm не был включен правильно, однако я могу выполнить следующий запрос в своей базе данных без проблем:
SELECT name, similarity(name, 'blabla') AS sml
FROM aa.meetings
WHERE name % 'blabla'
ORDER BY sml DESC, name;
Любая помощь будет оценена по достоинству! Спасибо