PHP/Sphinxsearch-搜索字符串或lat lng
我需要找到城市名称与字符串或纬度匹配,且经度在给定值之间的所有结果。我的索引如下所示:PHP/Sphinxsearch-搜索字符串或lat lng,php,search,sphinx,Php,Search,Sphinx,我需要找到城市名称与字符串或纬度匹配,且经度在给定值之间的所有结果。我的索引如下所示: sql_field_string = city sql_attr_float = lat sql_attr_float = lng 有没有办法在查询中使用属性?或者可以在$s->setSelect的查询值中使用?我知道我可以使用$s->setFilterFloatRange轻松过滤结果,但在这种情况下,OR条件对我来说是必不可少的 这很好: $s->SetFilterFloatRange('lat',
sql_field_string = city
sql_attr_float = lat
sql_attr_float = lng
有没有办法在查询中使用属性?或者可以在$s->setSelect的查询值中使用?我知道我可以使用$s->setFilterFloatRange轻松过滤结果,但在这种情况下,OR条件对我来说是必不可少的
这很好:
$s->SetFilterFloatRange('lat', $_GET['lat'] - $_GET['distance'], $_GET['lat'] + $_GET['distance']);
$s->SetFilterFloatRange('lng', $_GET['lng'] - $_GET['distance'], $_GET['lng'] + $_GET['distance']);
$s->Query('@city Amsterdam');
但它给了我城市在阿姆斯特丹和lat之间的行,lng在给定值之间,但我的问题是我不需要过滤器和我需要的条件
我也知道我可以使用:
$s->setSelect('*, IF(lat<11,1,0) AS latitude');
但我相信我只能将“纬度”用作过滤器。请发布您到目前为止尝试过的内容,一些示例输入,您期望的输出,以及您实际获得的输出。我已经开始在sphinx forum@barryhunter上回复此版本。谢谢,我害怕听到这是不可能的。最后,我使用addQuery API方法执行了2个查询,得到了一个计数更高的查询。