使用Google App Engine和Search API进行邻近搜索

时间:2014-05-08 13:11:01

标签: python google-app-engine gae-search

我使用的是Python2.7,Google App Engine 1.9。*和Search API。 我存储了位置启用的兴趣点。 现在我想实现GET,返回特定位置附近的所有兴趣点。

我在Google Search API Basics online document中找到的示例引用了查询结果的排序。可以在github repo appengine-search-python-java找到相同的示例作为完整的源包。无论查询字符串是什么,找到的兴趣点(示例中的商店)都以邻近顺序列出,最接近。

还有一些示例说明如何将返回值限制为特定数量的项目。 More Complex Search API Queries tutorial, section Query Options

search_query = search.Query(
query_string=query.strip(),
options=search.QueryOptions(
    limit=doc_limit,
...

然而,我的用例要求切断距离,而不是硬件数量。 有人有这方面的例子吗?

1 个答案:

答案 0 :(得分:2)

哎呀,没有仔细阅读,答案是在同一个地方 Location-Based Queries (Geosearch)

# a query string like this comes from the client
query = "distance(store_location, geopoint(-33.857, 151.215)) < 45000"
try:
  index = search.Index(config.STORE_INDEX_NAME)
  search_results = index.search(query)
 for doc in search_results:
    # process doc ...
except search.Error:
  # ...