1

Veri deposundaki veriler üzerinde verimli geospatial sorgular gerçekleştirmesi gereken bir appEngine uygulaması oluşturuyorum. Bir örnek kullanım durumu, geçerli kullanıcının 10 mil yarıçapı içinde ilk 20 yazıyı bulmam gerekecek. Benim yönelik ayrıntılı bir araştırma yapmış olan, ben bulduk olurdu bu tür bir işlev ulaşmak için 2 iyi yaklaşımlar gibi görünüyor şu anda neyi: Geohashing vs SearchAPI veri deposu kullanarak jeo-uzamsal sorgulama için

  • oluşturma/silme belgeleri Python'un dinamik deformasyon modelinde birleştirilerek kitaplığı kullanarak

    • İndeksleme geoHashed GEOPoint verileri Ancak

    onlar üzerinde indeksleme geohashes ve sahne sorgular doğrudan daha az maliyetli ve oluşturmak ve her coğrafi sorgu için bir belge silmek zorunda çok daha hızlı olacağını yüksek düzeyde bir bakış açısıyla görünüyor Google'ın yeni SearchAPI kullanarak yapısal veri Ayrıca bu geohashing c okudum ekvatorda ya da karma algoritma tarafından yaratılan 'hata hatları' boyunca çok yanlış olabilir. aşağıdaki gibi ben detaylı olarak iyi yöntemler zıt çok az Mesajları gördüm ve ben yığın Bu konuşmayı için iyi bir yer olduğunu düşünüyorum, bu yüzden sorularım şunlardır:

    • herkes benzer özellikleri uygulanmış ve olumlu deneyimleri vardı Has iki yöntem
    • Daha ucuz alternatif hangi yöntem olabilir?
    • Daha hızlı alternatif hangisi olurdu?
    • Dışarı çıktığım başka bir önemli yöntem var mı?

    Şimdiden teşekkürler.

  • cevap

    1

    Geohashing'in hiç de yanlış olması gerekmez. Hepsi uygulama detaylarında. Demek istediğim, sınır olaylarını ele almak için komşu coğrafyaları kontrol edebilir ve ekvatorun diğer tarafındaki komşuları da kapsadığından emin olabilirsiniz.

    Kullanım durumunuz, önerdiğiniz gibi bir yarıçap içinde başka varlıklar buluyorsa, kesinlikle Arama API'sini kullanmanızı öneriyorum. Bu kullanım için uygun bir mesafe fonksiyonu var.

    Arama API sorguları, Datastore sorgularından daha pahalıdır, ancak hesaplamalarınızda bu hesaplamaları yapmak için örneğinizde tartılırsanız ve muhtemelen her bir geohaş için tüm varlıklar boyunca yineleme yapmak istediğiniz mesafenin gerçekte olduğundan daha az olduğundan emin olun. yarıçap, o zaman Arama API'sının kazanan olduğunu söyleyebilirim. Uygulama süresini de unutmayın.

    +0

    Standart bir google uygulama motoru ortamındaysanız Arama API'sının hiçbir örneği kullanmadığını mı söylüyorsunuz? – Micro

    +1

    Arama API'sı, Google Platform tarafından sağlanan bir hizmettir. Örneğinizin içinde çalıştırılmaz - bir çağrı gönderir ve servisten yanıt beklersiniz. Arama API'sına erişebilmek için çalışan bir örneğiniz olmalıdır, ancak aramanız kendi örneğinde yapılmamıştır. Bununla birlikte, cevabınızı beklerken örneğinizde bir iş parçacığı kullanırsınız. Örneğinizdeki hesaplamaları yaparsanız, örneğiniz için birden fazla iş parçacığı ve/veya daha pahalı bir CPU kullanmak isteyebilirsiniz. Verileri sadece geçiyorsanız bunun yerine daha ucuz bir 500MHz örneğine sahip olabilirsiniz. – marcus

    -1

    Bu post belgesine bir göz atabilirsiniz, başka bir harika alternatif olabilir.

    Uygulamamda bunu kullanmıştım ve uygulama kullanıcılarına sağlanan yarıçapı bulma gereksinimim için harika çalışıyor.