Я думаю, что все сводится к тому, что полезно людям, использующим ваш сайт.Имеет ли смысл запускать один и тот же запрос для всех моделей?Тогда ThinkingSphinx.search
, вероятно, лучше, особенно с точки зрения производительности.
Тем не менее, вы хотите сгруппировать результаты поиска по их соответствующим классам?Тогда некоторая сортировка необходима.Или вы разделяете результаты каждого класса, как поиск в GitHub?Тогда, возможно, стоит иметь отдельные коллекции, как то, о чем вы уже подумали.
На самом базовом уровне вы можете просто вернуть все отсортированные по релевантности, а не по классу, а затем просто отобразить немного другой результат в зависимости откаждый результат.Ситуация может помочь в этом - лучше всего сохранить как можно больше логики в помощниках и / или, возможно, частичных?