2

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.

flynn
  • 1,572
  • 2
  • 12
  • 26

1 Answers1

4

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

Patrick Poon
  • 91
  • 1
  • 4