7

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

4

3 回答 3

3

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

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

于 2012-05-30T06:08:26.663 回答
1

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

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

于 2012-05-30T02:50:49.203 回答
0

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

于 2012-05-30T11:40:21.000 回答