Да, конечно, вы можете, но с множеством разных результатов, загрузка данных на session_start может стать громоздкой. Кроме того, один и тот же поиск может выполняться более чем одним пользователем, что приводит к дублированию (трудоемким) поискам/большим сеансам (каждый шаг загрузки занимает больше времени)/больше места для хранения.
Если данные безопасны от изменений, достаточных для хранения в сеансе, посмотрите на такие кеши, как APC или Memcached, чтобы сохранить результат с помощью значимого ключа. Таким образом, загрузка снижается из базы данных, и поиск может быть предоставлен пользователям.
Если у вас есть фиксированное количество элементов для разбивки на страницы, вы можете даже рассмотреть возможность хранения разных «страниц» с пре-или постфиксным ключом, поэтому вам не нужно выбирать подмножество результата каждый раз (т. е. хранить с помощью клавиши «поиск: foo = bar | 1»/«поиск: foo = bar | 2» и т. д.)