猿问

附近商家算法

Shop表存储字段Lat,Lng
现在使用方案为通过sql语句进行距离的计算之后orderbylimit进行分页但在SQL内进行计算,导致慢查询.
目前有两种方案
A方案:获取用户当前的经纬度通过算法找到每条记录所在点的经纬度周围的一个大概范围,比方说正方形的四个点,然后使用mysql的空间计算
B方案:通过Geohash算法算出附近的商家
前端通过接口获取数据进行分页,采用以上两种方案时,均为一次性拉取出附近商户的数据,之后进行距离的计算,根据距离的排序生成最终数组,此时数据分页应该采用根据数组的索引计算偏移量进行分页的操作?
大家有更好的附近商家+分页的算法吗?
补充同时要求能够根据城市和区域进行搜索
蓝山帝景
浏览 420回答 2
2回答

千巷猫影

使用ElasticSearch或者Solr之类支持空间的搜索引擎。之前写过相关的Demo:DjangoElasticSearchIonic打造GIS移动应用——架构设计
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答