アプリエンジンの検索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)
私は何かを逃しているのですか、それとも何か間違っているのですか?これにより、少なくとも1つの結果が返されるはずです。
** アップデート **
いくつかの詮索/検索/テストを行った後、これはGoogleAppEngine開発サーバーに関するバグである可能性があると思います。
本番環境で同じデータに対してロケーション検索を実行すると、期待どおりの結果が得られます。開発環境のデータに対してまったく同じクエリを比較して実行すると、予期しない結果が0になります。
誰かがこれについて何か洞察を持っているなら、アドバイスしてください。それ以外の場合は、同じ問題が発生している方のために、ここでAppEngineの課題追跡システムに課題を作成しました 。