While testing the search api locally (Java SDK) i'm getting unexpected 
results doing equality and range checks against numbers which are small.

For example, if i index three documents with the following fields:
numeric: 0.0011
numeric: 0.0022
numeric: 0.0033

I get the following results for the following queries:
numeric: 0.0033 -> []
numeric= 0.0033 -> []
numeric>= 0.0033 -> []
numeric < 0.0033 -> [document1, document2, document3]
numeric < 0.0022 -> [document1, document2]
numeric < 0.0021 -> [document1, document2]
numeric < 0.002 -> [document1]

I assume there is something in the implementation which indexes or runs 
queries against numbers at a granularity other than exact? Should I expect 
these
results to be reflected in the real appengine environments? What precision 
can I rely on?

The main challenge i am trying to solve is the ability to store numbers 
which fall outside of the SearchApiLimits.MINIMUM_NUMBER_VALUE and 
SearchApiLimits.MAXIMUM_NUMBER_VALUE and still operate on them. At the 
moment, shifting them by moving the decimal place is the only option I have 
been able to come up. Are there any alternatives that allow good control 
over how much precision is lost in the translation first to a double (the 
type in the java api), and then whatever is happening under the hood?





-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/d/optout.

Reply via email to