我正在用python创建一个appEngine应用程序,它需要对数据存储数据执行高效的地理空间查询。一个示例用例是,我需要在当前用户的10英里半径内找到前20个帖子。在对我的选择进行了一些研究之后,我发现目前实现这类功能的两种最佳方法是:
从高层次的角度来看,对地理哈希进行索引和直接对它们执行查询比为每个地理空间查询创建和删除文档要低得多,但我也读到,地理哈希在赤道沿线或哈希算法创建的“故障线”上可能非常不准确。我很少看到详细对比最佳方法的帖子,我认为堆栈是进行这种对话的好地方,所以我的问题如下:
提前谢谢。
发布于 2016-03-20 06:30:31
地理哈希根本不必是不准确的。所有这些都在实现细节中。我的意思是,你也可以检查附近的地理单元来处理边界问题,并确保包括赤道另一边的邻居。
如果您的用例是按照您的建议在半径内找到其他实体,我肯定会建议使用Search。他们有一个为这种用途量身定做的距离函数。
Search查询比Datastore查询(是的)花费更高,但是如果在实例中权衡计算时间来执行这些计算,并且可能会迭代每个地散列的所有实体,以确保距离实际上小于所需的半径,那么我会说Search是赢家。不要忘记实现时间。
发布于 2016-03-19 06:25:53
您可以看看这个帖子,它可以是另一个很好的选择。
我已经在我的应用程序中使用了这个,它对我的需求非常有用,因为我需要找到我的应用程序用户,并提供了radius。
https://stackoverflow.com/questions/36092591
复制相似问题