使用 GAE Search API (1.7.6) 按距离搜索地理位置总是返回零结果...
我构建以下查询:distance(geoLocation, geopoint(27.241131, -82.464445)) < 16093 /* 10 Miles in meters */
尽管我在距离内有地理点,但结果始终为零。例如,我的搜索原点在这种情况下lat: 27.241131, lgn: -82.464445
,范围内的地理点之一是lat:27.233247, lng-82.48819800000001.
当我使用谷歌地图 api v3 计算距离时,如下所示:
google.maps.geometry.spherical.computeDistanceBetween (
new google.maps.LatLng(27.241131, -82.464445),
new google.maps.LatLng(27.233247, -82.48819800000001)) = 2509.46
这就是我将地理点与其他字段一起存储的方式
dictFields = []
dictFields.append(search.AtomField(name = 'zipcode', value = k.get('zipcode')))
geopoint = search.GeoPoint(float(lat), float(lng))
dictFields.append(search.GeoField(name = 'geoLocation', value = geopoint))
后来我做
search.Document(doc_id = document_id, fields = dictFields)
这里有什么问题?我知道 Search 有效,因为当我按不同于地理点的其他字段进行搜索时,它会返回结果。
搜索ID是这样完成的:
options = search.QueryOptions(limit=1000, returned_fields=['geoLocation', 'zipcode'])
query = search.Query(query_string=query_str, options=options)
在哪里query_str = distance(geoLocation, geopoint(27.241131, -82.464445)) < 16093
更新
我正在使用索引存储的地理点进行测试并获取 search.SearchResults(number_found=0L)。问题:这是否可以在开发环境中工作?
帮助表示赞赏!!!!