我用sphinx做一个距离排序的功能,现在报了一个错误,index distance: unknown latitude attribute 'latitude'
$log = 110.362616;
$lat = 20.030727;
$radius = (float) 10000.0 * 1.61; //搜索10公里以内的地点
$sphinx = new Sphinx();
$sphinx->SetMatchMode(SPH_MATCH_ANY);
$sphinx->SetSortMode(SPH_SORT_EXPR, "@weight");
$sphinx->SetGeoAnchor('latitude', 'longitude',$lat * M_PI/180.0,$log * M_PI/180.0);
$sphinx->SetSortMode(SPH_SORT_EXTENDED, '@geodist ASC'); // 按距离正向排序
$sphinx->SetFilterFloatRange('@geodist', 0.0, $radius); // 过滤掉大于10公里的地点
$result = $sphinx->Query('', '*');
我在sphinx配置的sql是sql_query = select RADIANS(longitude) as longitude,RADIANS(latitude) as atitude from distance
需要在配置文件写下
sql_query = select *,RADIANS(latitude) AS latitude,RADIANS(longitude) AS longitude from distance
sql_attr_float = latitude
sql_attr_float = longitude