2012-02-28 71 views
2

我正在嘗試實現全文搜索,其中基於用戶位置返回匹配。我設法使用API​​來完成它,現在我想做的使用SphinxQL(因爲我需要將數據從幾個獅身人面指標相結合)同樣的事情:SphinxQL中的SetGeoAnchor

#!/usr/bin/perl 

use Sphinx::Search; 

my $sph = Sphinx::Search->new(); 
$sph->SetMatchMode(SPH_MATCH_EXTENDED); 
$sph->SetSortMode(SPH_SORT_EXTENDED, '@geodist ASC'); 
$sph->SetGeoAnchor('lat', 'lng', 0.5894, -1.4724); 
$sph->SetFilterFloatRange('@geodist', 0, 100000); 
my $res = $sph->Query("... SOME QUERY ..."); 

回答

2

首先可以查詢做多指標

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