我想實現一個功能,其中附近場館的列表可以按用戶位置的距離排序。我現在的做法是將緯度和經度值存儲爲浮點數,並且查詢查找用戶位置的+/-值(搜索延伸到用戶位置的北部,南部,東部和西部的正方形用戶)。然後,我對結果集進行快速計算,確定距離並對業務邏輯進行排序。現在我用誰也主要用於關係數據庫(應用程序正在運行使用Hibernate的MySQL)的人的角度接近這一點,但有一個更好的方法(在不同的數據庫像Neo4j的或更好的列類型?)什麼是存儲可以按距離查詢的位置的最佳方法?
此外,我的方法有一個半複雜的解決方法,用於查詢0或0或0附近的查詢)。
至於最佳的我的工作定義我在尋找可縮放的潛在在10英里半徑數百個場館和幾十萬的總場地的方法。換句話說,SimpleGEO大約只有1%,所以如果這個問題的規模不需要最佳解決方案,那麼「你沒事」也會是一個有趣的答案,儘管我會在知道原因的基礎上組合起來)
我其實已經實現了Lucene搜索已經(和與Hibernate Search的太)的任何方向。這將是很好的展望。謝謝! – 2013-04-20 17:47:43