For this to work, attrlat and attrlng need to be in lower case otherwise you will get :
"unknown latitude attribute ''"
PHP - Manual: SphinxClient::setGeoAnchor
2024-12-22
(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.
attrlat
Name of a latitude attribute.
attrlong
Name of a longitude attribute.
latitude
Anchor latitude in radians.
longitude
Anchor 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