我正在使用App Engine搜索将结果限制在定义的圈内。
distance("points", geopoint(%f,%f)) < %d" % (latitude, longitude, radii)
对于10s,100s和1,000s的半径,我得到了正确的结果。 但是对于400,000(即400km)的半径,则返回定义圆外的结果。
有谁知道这是这个平台的限制吗?我发现很难相信没有考虑到这个伟大的圈子。
答案 0 :(得分:1)
Google有a bug; 2013年2月报道,至今仍在场。 问题跟踪器将其优先级标记为中等。
一个建议是查看返回的每个结果并检查它是否正确。
如果您在Google平台上添加此更正步骤,那么您需要为此功能支付两次费用 - 一次用于Google的编码执行以生成错误的结果集,一次用于修正代码。
这是一项非常简单的解决方法,因为总计结果的任何计数都可能非常不正确(例如,Google会返回100个结果,但实际数字为零)。
如果由于性能原因必须对结果进行分页,那么这个错误会导致该方法失败,因为一旦您过滤掉了无效的结果,每个页面集可能都不包含任何有效结果。
这是答案还是我和其他人错过了一些重要细节?