为啥基于地理搜索/位置的搜索返回零结果?

Posted

技术标签:

【中文标题】为啥基于地理搜索/位置的搜索返回零结果?【英文标题】:Why is geosearching/location based searches returning zero results?为什么基于地理搜索/位置的搜索返回零结果? 【发布时间】:2013-03-15 00:23:48 【问题描述】:

我正在尝试使用应用引擎的搜索 API 来搜索位置: https://developers.google.com/appengine/docs/python/search/overview#Performing_Location-Based_Searches

问题是无论我做什么,我得到的结果都是零。我将搜索 lat/lng 设置为文档 GeoPoint 属性上的确切点,它仍然返回零。

我知道常规搜索有效,因为如果我将查询更改为常规全文搜索,它就有效。

这是我的数据示例(这实际上来自此处的示例应用程序:http://www.youtube.com/watch?v=cE6gb5pqr1k)

Full Text Search > stores1
Document Id: sanjose
Field Name  Field Value
store_address   123 Main St.
store_location  search.GeoPoint(latitude=37.37, longitude=-121.92)
store_name  San Jose 

然后是我的查询:

index = search.Index('stores1')
loc = (37.37, -121.92)
query = "distance(store_location, geopoint(37.37, -121.92)) < 4500"
loc_expr = "distance(store_location, geopoint(37.37, -121.92))"
sortexpr = search.SortExpression(
   expression=loc_expr,
   direction=search.SortExpression.ASCENDING, default_value=4501)
search_query = search.Query(
   query_string=query,
   options=search.QueryOptions(
     sort_options=search.SortOptions(expressions=[sortexpr])))

results = index.search(search_query)
print results 

还有回报:

search.SearchResults(number_found=0L)

我是否遗漏了什么或做错了什么?这应该至少返回一个结果,对吧?

** 更新 **

在进行了一些窥探/搜索/测试之后,我认为这可能是关于 google 应用引擎开发服务器的错误。

如果我在生产环境中对相同的数据运行位置搜索,我会得到预期的结果。当我在开发环境中对数据进行比较并运行完全相同的查询时,我得到了意外的 0 结果。

如果有人对此有任何见解,请提供建议。否则,对于那些看到同样问题的人,我在应用引擎的问题跟踪器上创建了一个问题 here。

【问题讨论】:

print results 究竟打印了什么? 它在上面:'search.SearchResults(number_found=0L)' 这也是我的帖子:***.com/questions/15616200/… 【参考方案1】:

您可能已经知道这一点,但万一有人看到这篇文章,AppEngine 搜索 API 的地理搜索功能在开发服务器上返回零结果。来自https://developers.google.com/appengine/training/fts_intro/lesson2:

“...开发 Web 服务器不完全支持某些搜索查询(在本地运行),因此您需要使用已部署的应用程序来运行它们。”

这是另一个有用的链接: https://developers.google.com/appengine/docs/python/search/devserver

【讨论】:

以上是关于为啥基于地理搜索/位置的搜索返回零结果?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 正向地理编码返回不稳定、稀疏的结果

地图搜索结果

无法通过 ListView 搜索,返回零结果

为啥 MKLocalSearch 搜索“附近的餐馆”会返回不同城市的位置?

我在 2 个搜索日期之间检索事件的查询没有返回任何结果,为啥?

优化表格以搜索地理位置