Zalety R-drzew w porównaniu z geohashami


18

Geohashy są szeroko stosowane w produktach takich jak: Lucene, mongodb itp. I stały się jedną z najważniejszych technologii współczesnych.

Czy Geohashowie zastąpili stare dobre R-drzewa lub czy R-drzewa mają jakieś zalety w porównaniu z Geohashami?

Odpowiedzi:


11

Geohash to bardzo prosty i skuteczny sposób indeksowania obiektów przestrzennych, w szczególności obiektów punktowych. Indeksowanie linii i wielokątów jest trudniejsze do indeksowania, ale można to zrobić. Geohash to statyczna, hierarchiczna siatka o stałym rozmiarze, nakładana na powierzchnię ziemi. Komórki siatki tego samego poziomu hierarchicznego nie nakładają się. R-Tree to dynamiczna siatka, której lokalizacja i rozmiar komórki zmieniają się w zależności od indeksowanych funkcji. Indeksy R-Tree zawierają ramki i komórki zmieniające się za każdym razem, gdy wstawiasz i aktualizujesz dane. Geohash jest najczęściej używany do indeksowania obiektów punktowych, a komórki nie zmieniają się przy każdej wstawce i aktualizacji danych. Komórki Geohash nie dostosowują się do funkcji takich jak w przypadku R-drzewa.

Niektóre zalety geohash (w porównaniu do r-drzewa) mogą być:

  • łatwa implementacja
  • brak spadku wydajności przy rosnącej liczbie funkcji
  • wyszukiwania bliskości (częściowo prawdziwe)

Niektóre z wad geohash (w porównaniu do r-drzewa) mogą być:

  • dowolna precyzja siatki
  • trudniejsze do indeksowania (i zapytania) cechy linii i wielokątów
  • rozmiar indeksu może być duży przy niektórych metodach indeksowania linii i wielokątów
  • według specyfikacji można go stosować tylko z układem współrzędnych długości / szerokości geograficznej, chociaż tę samą metodę można zastosować również w przypadku innych układów współrzędnych

Te produkty (bazy danych), o których wspomniałeś, używają geohash, ponieważ geohash jest używany głównie do indeksowania punktów i istnieje wiele aplikacji, które potrzebują takiej funkcji. Linie i wielokąty nie są tak często używane (z wyjątkiem oczywiście aplikacji GIS), więc po co się tym przejmować. Innym powodem jest oczywiście łatwość wdrożenia. Geohash przekształca współrzędną dwuwymiarową na wartość jednowymiarową. Nazywa się to redukcją wymiarów. Jednowymiarową wartość można łatwo zindeksować za pomocą standardowego drzewa B, które jest najczęściej stosowane w tych produktach.

Muszę wspomnieć, że istnieją podobne algorytmy do geohash, ale większość z nich jest zastrzeżona i wymaga licencji. Geohash jest własnością publiczną. Może to być również przyczyną tak dużego wykorzystania w ostatnich latach.

Prawdopodobnie są też inne zalety i wady, ale te pierwsze przychodzą mi do głowy. Mam nadzieję, że moje wyjaśnienie trochę pomoże.


nie rozumiałem, dlaczego geohashy dają dowolną precyzję siatki. Czy możesz wyjaśnić na przykładzie. Będę ci wdzięczny za to samo.
Jannat Arora

1
Geohash przekształca współrzędne długości i szerokości geograficznej w ciąg jednowymiarowy. Długość tego ciągu jest bezpośrednio związana z przeliczoną dokładnością współrzędnych. Proszę spojrzeć na to unterbahn.com/2009/11/… . Możesz zobaczyć, jak długość łańcucha geohash jest powiązana z precyzją. Zasadniczo geohash przekształca punkt w obszar wielokąta (jedna siatka geohash). Rozmiar tego obszaru wielokąta zależy od długości łańcucha geohash i szerokości geograficznej, którą obliczasz geohash.
Mario Miler,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.