Во-первых, можно сделать несколько индексов в запросе
my $res = $sph->Query( "... SOME QUERY ...", 'index1, index2');
В противном случае вам просто нужно использовать функцию GEODIST ...
SELECT *,GEODIST(lat, lng, 0.5894, -1.4724) AS geodist FROM ... WHERE MATCH("... SOME QUERY ...") AND geodist < 100000 ORDER BY geodist ASC