For this to work, attrlat and attrlng need to be in lower case otherwise you will get :
"unknown latitude attribute ''"
PHP - Manual: SphinxClient::setGeoAnchor
2025-10-25
(PECL sphinx >= 0.1.0)
SphinxClient::setGeoAnchor — Set anchor point for a geosphere distance calculations
$attrlat
, string $attrlong
, float $latitude
, float $longitude
) : boolSets anchor point for a geosphere distance (geodistance) calculations and enables them.
Once an anchor point is set, you can use magic "@geodist" attribute name in your filters and/or sorting expressions.
attrlatName of a latitude attribute.
attrlongName of a longitude attribute.
latitudeAnchor latitude in radians.
longitudeAnchor longitude in radians.
成功时返回 TRUE, 或者在失败时返回 FALSE。
For this to work, attrlat and attrlng need to be in lower case otherwise you will get :
"unknown latitude attribute ''"
When sorting on @geodist you have to use SetSortMode with SPH_SORT_EXTENDED, like below, if SPH_SORT_ATTR_ASC does not seem to work.
$sphinx->SetSortMode(SPH_SORT_EXTENDED, '@geodist ASC');
官方地址:https://www.php.net/manual/en/sphinxclient.setgeoanchor.php