Я использую модуль Trigram (pg_trgm) для Postgres в приложении Rails 5 для текстового поиска. Мне удалось успешно получить удовлетворительные результаты, используя следующий вызов, чтобы найти limit количество записей, имена которых похожи на запрос:
def self.glance(query, limit = 10)
find_by_sql(['select *, name <-> ? as confidence from studies order by confidence limit ?', query, limit])
end
Теперь я хотел бы расширить результаты, включив в них значение функции подобия для каждой записи и целевой запрос для отображения.
Я считаю, что мне следует настроить область (или метод класса), где я могу сделать параметризованный вызов оператора расстояния (имя ‹-> ?), а затем вернуть значение, как если бы это был атрибут в модели базы данных.
Могу ли я получить рекомендацию по лучшей практике для этого? Спасибо.