任何人都知道地理空間索引是如何工作的,我的意思是計算最近點的算法?mongodb中地理空間索引的內部機制
在SQL我們可以做這樣的事情:
SELECT id, (x-a)*(x-a)+(y-b)*(y-b) as distance FROM table1 ORDER by distance ASC
當然這是不夠用MongoDB的地理空間索引比較有效的,但如何做MongoDB的計算和排序?
非常感謝提前。
任何人都知道地理空間索引是如何工作的,我的意思是計算最近點的算法?mongodb中地理空間索引的內部機制
在SQL我們可以做這樣的事情:
SELECT id, (x-a)*(x-a)+(y-b)*(y-b) as distance FROM table1 ORDER by distance ASC
當然這是不夠用MongoDB的地理空間索引比較有效的,但如何做MongoDB的計算和排序?
非常感謝提前。
當前實現編碼頂上標準 MongoDB的B樹地理散列碼。 $ near查詢的結果是確切的。使用此編碼的一個限制 儘管速度很快,但前綴查找不會給出準確的結果,尤其是在位翻轉區域周圍。 MongoDB通過在初始前綴掃描之後執行網格鄰居搜索來解決這個問題,以挑選 以上的任何零散點。這通常確保了性能 保持非常高,同時提供正確的結果。
也有關於C++源代碼的實現細節的評論,它是開源的,可供下載(我的源代碼在另一臺計算機上但我認爲它是一個z-order-b-tree ...從我的理解,最終結果基本上是一個四鍵算法) – Jordan 2011-12-27 23:25:20
謝謝!這有很大幫助。從來沒有聽說過Geohashes,似乎我需要谷歌和深入研究第一個~~ – adamsmith 2011-12-28 06:32:18