Подтвердить что ты не робот

Как работает геопространственный индекс?

Мне интересно, как работает геопространственный индекс, например, используемый MongoDB. Может ли кто-нибудь объяснить, какая структура данных/алгоритм используется внутри? С какой временной сложностью выполняется поиск?

Ссылки на ресурсы также будут хороши.

4b9b3361

Ответ 1

В зависимости от типа данных и шаблона использования либо R-Tree, либо вариант (R *, R +) или quadtree или, возможно, даже kd-tree.

Ответ 2

В соответствии с этим другим вопросом SO:

Текущая реализация кодирует географические хеш-коды на стандартных MongoDB B-деревья. Результаты $near queries точны. Одно ограничение с этой кодировкой, в то время как быстро, это то, что префиксные поиски не дают точные результаты, особенно в областях бит флип. MongoDB решает эту проблему путем поиска соседей по сетке после первоначального сканирования префикса для выбора до каких-либо отступлений. Это в целом гарантирует, что производительность остается очень высоким, обеспечивая при этом правильные результаты.