一个查询的多个地理标准?

时间:2011-03-17 16:02:57

标签: sphinx

有没有办法:

一个。提供两组地理标准     对于单个查询;或
 湾链查询一起做一个     geodist查询,然后另一个基于     第一个结果?

或者,是否有人就如何计算两个基于地理位置的搜索的交集提出任何其他建议,如下图中的红色区域所示:

http://cl.ly/0v3m1L1P3U200l1P2C3d

感谢。

1 个答案:

答案 0 :(得分:0)

您可以在同一查询中设置多个GEODIST表达式。它最终看起来像

mysql> SELECT *, GEODIST ( x1, y1, lat_attr, lon_attr ) as c1, GEODIST ( x2, y2, lat_attr, lon_attr ) as c2 FROM YOUR_INDEX where c1<blue_dist and c2<yellow_dist

mysql> SELECT *, GEODIST ( x1, y1, lat_attr, lon_attr ) as c1, GEODIST ( x2, y2, lat_attr, lon_attr ) as c2, c1<blue_dist and c2<yellow_dist as yellow_cond FROM YOUR_INDEX where yellow_cond=1

其中x1,y1,x2,y2,blue_dist,red_dist是USER定义的常量