SphinxQL中的SetGeoAnchor

时间:2012-02-28 02:28:49

标签: sql geolocation full-text-search sphinx

我正在尝试实现全文搜索,其中根据用户位置返回匹配。我设法使用API​​,现在我想使用SphinxQL做同样的事情(因为我需要组合来自几个Sphinx索引的数据):

#!/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 ..." );

1 个答案:

答案 0 :(得分:2)

首先可以在Query

中做多个索引
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