R-ağaçlarının geohashlere göre avantajları


18

Geohashes, Lucene, mongodb, vb.Gibi ürünlerde yaygın olarak kullanılmaktadır ve günümüzün en önemli teknolojilerinden biri haline gelmiştir.

Geohashes iyi eski R ağaçlarının yerini aldı mı veya R-ağaçlarının Geohashes'e kıyasla herhangi bir avantajı var mı?

Yanıtlar:


11

Geohash, mekansal özellikleri, özellikle nokta özelliklerini endekslemenin çok basit ve etkili bir yoludur. Çizgi ve çokgen özelliklerinin dizine eklenmesi biraz daha zordur, ancak yapılabilir. Geohash, dünya yüzeyinin üstüne bindirilmiş statik hiyerarşik sabit boyutlu bir ızgaradır. Aynı hiyerarşik düzeydeki ızgara hücreleri çakışmaz. R-Tree, indeksledikleri özelliklere bağlı olarak hücre konumunu ve boyutunu değiştiren dinamik bir ızgaradır. R-Tree dizinleri özellikleri her eklediğinizde ve güncellediğinizde sınırlayıcı kutuları ve hücreleri değiştirir. Geohash çoğunlukla nokta özelliklerini indekslemek için kullanılır ve hücreler her veri ekleme ve güncelleme işleminde değişmez. Geohash hücreleri R-ağacı gibi özelliklere sahip değildir.

Geohash'ın (r-ağacına kıyasla) avantajlarından bazıları şunlar olabilir:

  • kolay uygulama
  • artan sayıda özellik ile performans kaybı yok
  • yakınlık aramaları (kısmen doğru)

Geohash'ın (r-ağacına kıyasla) dezavantajlarından bazıları şunlar olabilir:

  • şebekenin keyfi hassasiyeti
  • çizgi ve çokgen özelliklerini dizine eklemek (ve sorgulamak) daha zor
  • dizinin boyutu, bazı çizgi ve çokgen dizine ekleme yöntemleriyle büyük olabilir
  • spesifikasyonlara göre, aynı yöntem diğer koordinat sistemlerine de uygulanabilmesine rağmen, yalnızca boylam / enlem koordinat sistemi ile kullanılabilir.

Bahsettiğiniz bu ürünler (veritabanları) geohash kullanır, çünkü geohash esas olarak noktaları indekslemek için kullanılır ve böyle bir özelliğe ihtiyaç duyan birçok uygulama vardır. Çizgiler ve çokgenler sıklıkla kullanılmaz (elbette CBS uygulamaları hariç), neden bununla uğraşıyorsunuz? Diğer sebep, elbette, uygulama kolaylığıdır. Geohash iki boyutlu koordinatı tek boyutlu değere dönüştürür. Buna boyutsal azalma denir. Tek boyutlu değerin, çoğunlukla bu ürünlerde kullanılan standart b-ağacı ile indekslenmesi kolaydır.

Geohash'a benzer algoritmalar olduğunu belirtmeliyim, ancak çoğu tescilli ve lisans gerektiriyor. Geohash kamu malıdır. Son yıllarda bu kadar büyük bir kullanımın nedeni de bu olabilir.

Muhtemelen başka avantajlar ve dezavantajlar da vardır, ancak bunlar aklıma ilk gelenler. Umarım açıklamam biraz yardımcı olur.


neden geohashes ızgara keyfi keyfi verir anlamıyorum. Lütfen bir örnekle açıklayabilir misiniz? Aynı şey için sana minnettar olacağım.
Jannat Arora

1
Geohash, boylam ve enlem koordinatını tek boyutlu dizeye dönüştürür. Bu dizenin uzunluğu doğrudan koordinatın dönüştürülmüş hassasiyetine bağlıdır. Lütfen bu unterbahn.com/2009/11/… adresine bakın . Bir geohash dizesinin uzunluğunun hassasiyete nasıl bağlandığını görebilirsiniz. Temel olarak, geohash noktayı bir poligon alanına (bir geohash ızgarası) dönüştürür. Bu çokgen alanının boyutu, geohash dizesinin uzunluğuna ve geohash'ı hangi enlemi hesapladığınıza bağlıdır.
Mario Miler
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.