我正在使用谷歌应用程序引擎与java和谷歌搜索API。我使用地理位置和最大距离保存文档。
String queryString = "radius > distance(location, geopoint(" + lat + ", " + lon + "))";
Query query = Query.newBuilder().setOptions(options).build(queryString);
现在我想查询设置半径在给定地理点的距离内的所有文档,如下所示:
{{1}}
但是,如果我这样做,我会得到以下异常:
SearchException:无法比较" radius"用"距离()"
所以我的问题是,如何通过google search api实现我的用例?
答案 0 :(得分:0)
来自docs(我强调):
distance(point1, point2)
计算两个地理点之间的距离(以米为单位)。每个点都可以 通过使用geopoint字段的名称或调用来指定 地理位置功能。请注意,您不能提供两个字段名称 参数到这个函数。至少有一个参数必须是常数。
我不知道您的使用案例,但也许您可以在执行搜索之前确定radius
,因此您可以在查询字符串中将其指定为常量?