這100萬的數據表裡記錄著商戶的經緯度信息, 經度欄位為lan double類型, 緯度為lat double。
現在Mongodb也支持空間查詢 比如語句$near 關鍵字。可以把空間坐標和商戶信息放到裡面。進行查詢。
題主問的問題是經典的knn問題,建議直接搜索knn相關演算法。具體到空間查詢可以建立空間索引,目前有的資料庫如Mongodb是內置了空間索引的。
已有的幾個回答中的方案成本都太高了。一個成本比較低的方案是建一個Geohash欄位,生成Geohash時,經緯度的精度要高。然後按照查找附近50條的這個需求,調整查詢hash的模糊匹配長度。這樣成本較低,比較容易實施。
可以試一試地圖資源管理平台將100萬條數據導入地圖上,選中用戶的那個點,附近的商戶信息可視化的展示在地圖上了,誰近誰遠一目了然。如果不想要可視化編輯的過程也可以通過GIS空間運算的形式用編碼來實現