Кажется нашёл оптимальное решение, может пригодится кому-нибудь.
В индексы вводим аттрибут index_id и заполняем его следующим образом
source a:db
{
sql_query = SELECT *, "a" as index_id FROM table_a
sql_query_info = SELECT * FROM table_a WHERE id=$id
sql_attr_string = index_id
}
Для остальных индексов поступаем так же, только букву меняем в запросе
На клиенте делаем два запроса: первый получает кол-во вхождений запрос в каждый индекс, второй получает результаты.
$sphinx->SetGroupBy("index_id", SPH_GROUPBY_ATTR, "index_id ASC");
$query_info = $sphinx->Query($query); // 1ый запрос, получаем информацию о запросе
var_dump($query_info);
$sphinx->ResetGroupBy();
$result = $sphinx->Query($query); // 1ый запрос, обычный