Я нашел способ сделать это с помощью варианта @mobius 'SetSortMode
.
Вместо использования SPH_SORT_EXTENDED
я использовал SPH_SORT_EXPR
вместе с выражением ниже:
$cl->SetSortMode ( SPH_SORT_EXPR,
" @weight + ( -1000000000/(" . time() . " - course_date_ts)) ");
Это позволяет мне взвешивать предстоящие результаты выше, затем будущие результаты немного ниже и, наконец,старые результаты сохраняются.
Большое число в числителе должно соответствовать количеству десятичных знаков в метке времени UNIX.