2012-09-19 4 views
5

현재 구현은 표준 MongoDB B-trees 위에 지리적 해시 코드를 인코딩합니다. $ 근접 쿼리의 결과는 정확합니다. 이 인코딩을 사용하는 한도 인 은 빠르지 만 접두사 조회가 특히 비트 플립 영역 주변에서 정확한 결과를 제공하지 않는다는 것입니다. MongoDB는 초기 접두사 스캔 후 grid-neighbor 검색을 수행하여 임의의 straggler 포인트를 까지 선택하여 이것을 으로 해결합니다. 이렇게하면 일반적으로 올바른 결과를 제공하면서 성능이 매우 높게 유지됩니다.MongoDB는 어떻게 그것의 공간 인덱스를 구현합니까?

mongodb이 지구를 여러 개의 격자로 나눕니까?

답변

6

Greg Studer (10gen)의이 프레젠테이션은 지리 정보 색인에 대해 자세히 설명합니다. Geospatial Indexing with MongoDB. MongoDB를 2.2로서

표준 지리 구현 정밀도 가변 비트, 2-D GeoHash 접근법을 사용

By default, precision is set to 26 bits which is equivalent to approximately 
2 feet given (longitude, latitude) location values and default (-180, 180) 
bounds. 

geohash와 방법은 어떤 점 공간적으로 가까이 있지만 다른 가질 수 에지 케이스를 가지고 해시. MongoDB는 또한 하나의 추가 인덱싱 된 기준 (예 : "이름이 'foo'인 25 마일 이내의 모든 레스토랑을 찾으십시오.)을 사용하여 소규모"근사 "long/lat 검색을 위해 특별히 조정 된 Geospatial Haystack Index을 포함합니다.

Nicholas Knize (Thermopylae)의 흥미로운 프레젠테이션은 현재의 B-tree/GeoHash 접근 방식과 R-trees을 대조합니다. 슬라이드 8로 건너 뛰면 도움이 될 수있는 시각적 인 설명이 있습니다 : RTree Spatial Indexing with MongoDB - MongoDC.

관련 문제