Why is geosearching/location based searches returning zero results?

雨燕双飞 提交于 2019-12-09 19:36:32

问题


I am trying to use app engine's search API to search locations: https://developers.google.com/appengine/docs/python/search/overview#Performing_Location-Based_Searches

The problem is no matter what I do, I get zero results. I set the search lat/lng as the the exact point on a document's GeoPoint property and it still returns zero.

I know the regular search is working because if I change the query to be a regular full-text search, it works.

Here is an example of my data (this is actually from the example app here: 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 

And then my query:

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 

And the returns:

search.SearchResults(number_found=0L)

Am I missing something or doing something wrong? This should return at least that one result, right?

** UPDATE **

After doing some prying/searching/testing I think this may be a bug regarding the google app engine development server.

If I run location searches on the same data in the production environment, I get expected results. When I compare and run the exact same query on the data in the development environment, I get the unexpected 0 results.

If anybody has any insight on this, please advise. Otherwise, for those of you seeing the same problem, I created an issue on app engine's issue tracker here.


回答1:


You've probably already figured this out, but in case someone comes across this post, the geosearch feature of AppEngine's Search API returns zero results on the dev server. From https://developers.google.com/appengine/training/fts_intro/lesson2:

"...some search queries are not fully supported on the Development Web Server (running locally), so you’ll need to run them using a deployed application."

Here's another useful link: https://developers.google.com/appengine/docs/python/search/devserver



来源:https://stackoverflow.com/questions/15616200/why-is-geosearching-location-based-searches-returning-zero-results

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!