У меня есть три модели (User
, Tag
, Product
), и они взаимодействуют друг с другом. User
имеет много Tags
и Products
.
В целях поиска я хотел бы иметь возможность выполнять поиск (с одной панелью поиска) по именам пользователей, тегам и описаниям продуктов. Я также хотел бы выполнить поиск на страницах продуктов, но это относится только к названиям тегов и описаниям продуктов.
Вот два примера:
Поиск: «Линус Торвальдс» возвращает все экземпляры Линуса Торвальдса в трех моделях, причем любые экземпляры имени пользователя располагаются выше.
Поиск: «Linux» с возрастом: «20-25» возвращает все экземпляры пользователей с продуктами, которые включают «Linux» в своем названии / описании и попадают в этот возрастной диапазон, а также пользователей с тегами, которые включают «Linux "и у кого есть продукты, которые попадают в этот возрастной диапазон. Обратите внимание, что если в поиске не указан возраст, то по умолчанию он будет по умолчанию для всех, кто соответствует части «Linux», а не для нее.
Мой вопрос: как лучше всего это сделать? Должен ли я создать поисковую модель со своим собственным контроллером? Должен ли я просто игнорировать это и включить поисковый фрагмент в общую папку? Какие еще есть методы?
Большое спасибо.