Может быть кому нибудь будет полезно. Это не лучшее решение, но:
у моего клиента было требование отображать/сохранять абсолютно все результаты поиска.
Шагать с помощью постраничной навигации долго. У меня поиск19567 результатов занимал примерно 6 - 7 секунд с шагом в 1000.
Я решил задаче так:
// листинг кода условный, так как вырваны куски из середины кода, но идея ясна
// pre query
$sphinx->SetLimits( 0, 1, 1);
// получаем сколько всего рузльтатов найдено согласно ключу/прочим параметрам
$pre_res = $sphinx->Query($query, 'index_name');
// устанавливаем лимиты на весь диапазон найденых записей за раз
$sphinx->SetLimits( 0, $pre_res['total_found'], $pre_res['total_found']);
$res = $sphinx->Query($query, 'index_name');
Такой способ выбирает 40728 записей за где то 2 секунды. Естественно время примерное и зависит еще от ряда факторов.
Это не лучшее решение, но в моем случае нужно было только собрать ID найденных записей и сохранить их в базу, для дальнейшей работы. Красивого способа я не нашел, только вот такой "топор" :( .. но "топор" с задачей справляется не так уж и плохо ;)