Я создаю приложение appEngine в python, которое должно будет выполнять эффективные геопространственные запросы по данным хранилища данных. Например, пример использования - мне нужно найти первые 20 сообщений в радиусе 10 миль от текущего пользователя. Сделав некоторые исследования моих вариантов, я обнаружил, что в настоящее время, что кажется, 2 лучших подходов для достижения такого рода функциональности будет:Geohashing vs SearchAPI для геопространственных запросов с использованием хранилища данных
- Индексация geoHashed данных GeoPoint с использованием библиотеки Geomodel Питона
- Создание/удаление документов структурированных данных, используя новую SearchAPI от Google
кажется, с точки зрения высокого уровня, индексация geohashes и выполнения запросов на них напрямую будет дешевле и гораздо быстрее, чем создание и удаление документа для каждого геопространственной запроса, однако я также прочитал, что geohashing c быть очень неточным вдоль экватора или вдоль «разломов», созданных алгоритмом хэширования. Я видел очень мало сообщений контрастные лучшие методы в деталях, и я думаю, что стек является хорошим местом, чтобы этот разговор, так что мои вопросы заключаются в следующем:
- Кто-нибудь реализованы аналогичные функции и имели положительный опыт либо методы?
- Какой метод был бы более дешевой альтернативой?
- Какая быстрая альтернатива?
- Есть ли еще один важный метод, который я оставляю?
Заранее спасибо.
Вы говорите, что API поиска не использует какие-либо экземпляры, если вы находитесь в стандартной среде движка приложений Google? – Micro
API поиска - это сервис, предоставляемый платформой Google. Он не запускается внутри вашего экземпляра - вы отправляете вызов и ожидаете ответа от службы. У вас должен быть экземпляр, доступный для доступа к API поиска, но сам поиск не выполняется в вашем экземпляре. Тем не менее, вы будете использовать поток в своем экземпляре, ожидая ответа. Если вам нужно было выполнить вычисления в вашем экземпляре, вы можете использовать несколько потоков и/или более дорогой процессор для своего экземпляра. Если вы просто передаете данные, вместо этого вы можете использовать гораздо более дешевый экземпляр 500 МГц. – marcus