使用Google AppEngine Search API并进行距离搜索时,我有一个奇怪的准确性问题。
运行此查询时:
distance(pos, geopoint(55.7, 13.4)) < 2000
我收到了这两份文件:
ScoredDocument(documentId=5649050225344512_DistanceSearch_1391166416282, fields=Field(name=pos, value=GeoPoint(latitude=55.709999, longitude=13.410000), type=GEO_POINT)], rank=97326421, scores=[-1697.2195690708354])
ScoredDocument(documentId=6270652252160000_DistanceSearch_1391166416282, fields= Field(name=pos, value=GeoPoint(latitude=55.715000, longitude=13.419000), type=GEO_POINT)], rank=97326418, scores=[0.0])
如果我们查看从55.7,13.4到文档位置的实际距离,我将它们测量为
55.709999,13.41000至55.7,13.4 = 1276米
55.715000,13.419000至55.7,13.3 = 2049米
在我的查询中,我说过&lt; 2000米,只期待一个答案(1276米),但我得到了两个。
奇怪的是,如果我将距离搜索降低到717米,我仍然会得到两者。如果我然后降低到716米或更低,我得不到答案。
我做错了什么?我在生产应用引擎实例v1.8.8上运行它,而不是devserver。