gpt4 book ai didi

java - 无法将 CompositeFilter 与 4 个 FilterPredicate 值一起使用

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:33 25 4
gpt4 key购买 nike

我正在构建一个程序,该程序将通过具有纬度和经度参数的 GAE 数据存储进行搜索,以获取特定地理位置 block 内的用户,下面是代码片段:

public Iterable<Entity> GetJSONForEntitiyNearByUsingBounds(float lng,float     lat,GeoLocation.GeoLocationBoundry bound)
{
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();

Filter filter_min_lngt=new FilterPredicate("lng", FilterOperator.LESS_THAN, bound.lng1);
Filter filter_max_lngt=new FilterPredicate("lng", FilterOperator.LESS_THAN, bound.lng2);
Filter filter_min_lat=new FilterPredicate("lat", FilterOperator.GREATER_THAN, bound.lat1);
Filter filter_max_lat=new FilterPredicate("lat", FilterOperator.LESS_THAN, bound.lat2);

Filter filter_lng=new CompositeFilter(CompositeFilterOperator.AND,Arrays.asList(filter_min_lngt,filter_max_lngt));
Filter filter_lat=new CompositeFilter(CompositeFilterOperator.AND,Arrays.asList(filter_min_lat,filter_max_lat));


Filter filter=new CompositeFilter(CompositeFilterOperator.AND,Arrays.asList(filter_lng,filter_lat));

q.setFilter(filter);

PreparedQuery pq = datastore.prepare(q);


return pq.asIterable();
}

问题是,当我循环查询以提取实体时,会出现以下消息java.lang.IllegalArgumentException:每个查询仅支持一个不等式过滤器。同时遇到 lng 和 lat

有人可以帮助我吗,因为我不知道问题是什么

最佳答案

参见Restrictions on Queries :它明确指出不平等申报器一次只能用于一项属性(property)。

您的问题的解决方案是地理哈希:https://stackoverflow.com/search?q=%5Bgoogle-app-engine%5D+geohashing

关于java - 无法将 CompositeFilter 与 4 个 FilterPredicate 值一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11838327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com