我正在考虑将应用程序从 RoR 移植到以地理搜索为中心的 Python App Engine。我一直在使用其中一个开源 GeoModel(即 geohashing)库,以允许应用程序处理诸如“附近有哪些餐馆(纬度/经度对)”之类的问题的查询以及类似的事情。
GeoModel 使用 ListProperty 创建了一个沉重的索引,这让我担心定价,因为我有大约 1000 万个实体需要加载到生产环境中。
我今天早上发现的这篇文章在成本方面似乎相当可怕:
https://groups.google.com/forum/?fromgroups#!topic/google-appengine/-FqljlTruK4
所以我的问题是——既然谷歌已经发布了支持地理搜索的全文搜索,地理散列是一个没有实际意义的概念吗?不过,目前尚不清楚这个新 API 的幕后发生了什么,而且我担心索引大小可能与我使用 GeoModel 方法一样大。
搜索 API 的另一个问题是,看来我不仅必须在数据存储中创建我的模型,而且还要将其中一些数据(它所代表的模型的 GeoPtProperty 和 entity_key)复制到 Documents 中,这大大增加了我的数据集。
对此有什么想法吗?目前我正在考虑刮掉这个端口太昂贵了,尽管到目前为止我真的很喜欢在 App Engine 环境中工作并且很想在我的一些应用程序中摆脱 EC2。