CakePHP 3.x Поиск нескольких несвязанных моделей

Я искал способ поиска по нескольким несвязанным моделям, что означает, что нет никаких ассоциаций между поисковыми моделями, и я не нашел никакой документации о том, как это сделать.

Идея состоит в том, что у меня есть поисковая форма на каждой странице, где я бы хотел, чтобы пользователь мог выполнять поиск по нескольким моделям, представленным на сайте. Некоторые модели связаны, некоторые нет.

Например

Ledgers, Plates, and Essays are related by ledger_id
Comments, and Galleries are related to Plates via plate_id
Discussions is not related or associated to any of the above
Products are not related or associated to any of the above

Все таблицы имеют созданное поле.

Поэтому я хотел бы, чтобы моя форма поиска производила поиск по всем перечисленным выше таблицам, отсортированным по созданному полю, ГК, Тарелки, Эссе, Комментарии, Галереи, Обсуждения и Продукты...

Любые идеи о том, как я могу сделать это с одним набором результатов?

1 ответ

Используйте Elastic Search, чтобы поместить ваши данные в несколько индексов / типов или один. Если вы проведете некоторое исследование по Elastic Search, вы поймете, как это сделать.

Альтернативой является также денормализация всех ваших данных в одной таблице и поле JSON. Postgres и даже MySQL поддерживают поиск в данных JSON внутри поля таблиц.

Вы ничего не можете сделать, если хотите запросить все эти разные данные одновременно.

Другие вопросы по тегам