我正在研究基于地理的搜索,其中每个人都有一个具有给定半径和中心经纬度的可搜索圆。如果搜索者在该可搜索区域中,则可以找到他。我的意思是用户给出了他的当前位置,如果该位置在个人的给定圈子中,则用户会找到该个人。
在AWS cloudsearch中,有一些地理位置搜索技术,例如Haversine和边界框。在这种情况下,我发现边界框不兼容。 Haversine不能在其他地方使用,而不能用于表达。 我尝试使用以下表达式:
> "predicate":"haversin(23.14,31.4666,latitude,longitude)<=radius/1000.00"
并获得返回值 谓词:1.0或0.0。 但是不能在任何过滤器或查询中使用此谓词值。
另一种通过笛卡尔坐标计算的方法,例如使用大于,小于。
针对此问题是否有任何基于cloudsearch的解决方案?