Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Inequality Filter in AppEngine Datastore

I understand that Google AppEngine supports only one inequality filter per query. What are the workaround on this limitation? Are there any solution that will provide similar effect?

like image 1000
JR Galia Avatar asked May 30 '12 02:05

JR Galia


2 Answers

Actually GAE supports multiple inequality filters as long as they are on the same property.

The workarounds to this limitation are data-specific, e.g. it depends how your data is structured and how you want to query it. For example, for geo searching, as @Dan Holevoet mentioned, there are various geo-hashing algorithms. Basically all such algorithms involve combining multiple properties into one and at the same time quantizing the property (creating discrete values). For example geo-hashing involves dividing up the world map into small fixed-size areas (= combining lat/lon and quantizing) in order to be able to search via equality operator.

like image 107
Peter Knego Avatar answered Sep 28 '22 03:09

Peter Knego


Whether there is a workaround for having a single inequality filter per query depends on the type of dataset you are querying over.

For instance, if you wanted to query positional data using a latitude and longitude address, you'd typically need to query for a range of values on two properties (lat and long). However, with a geohash algorithm you can accomplish an equivalent query using only a single property.

like image 45
Dan Holevoet Avatar answered Sep 28 '22 02:09

Dan Holevoet