AppEngine Datastore中的不等式筛选

我知道Google AppEngine每个查询只支持一个不等式过滤器。 什么是这个限制的解决方法? 有没有解决方案可以提供类似的效果?


实际上,GAE支持多个不相等的过滤器,只要它们在同一个属性上。

此限制的解决方法是数据特定的,例如,它取决于数据的结构以及查询方式。 例如,对于地理搜索,正如@Dan Holevoet提到的那样,存在各种地理散列算法。 基本上所有这些算法都涉及将多个属性合并为一个属性并同时量化属性(创建离散值)。 例如,地理散列涉及将世界地图划分成小的固定尺寸区域(=组合经纬度和量化)以便能够通过相等运算符进行搜索。


对于每个查询有单个不等式过滤器是否有解决方法取决于您正在查询的数据集的类型。

例如,如果您想使用纬度和经度地址查询位置数据,则通常需要查询两个属性(经度和纬度)上的一系列值。 但是,使用geohash算法,只能使用单个属性完成等效查询。


当我看到这个问题时(例如搜索范围从 - 到)我使用带有单个不等式过滤器的查询。 根据排序顺序(asc或desc),我选择上限或下限。 之后,我用编程方式过滤结果,其底部或上限不在查询过滤器中。

链接地址: http://www.djcxy.com/p/57829.html

上一篇: Inequality Filter in AppEngine Datastore

下一篇: options for restoring appengine datastore data?