2016-08-29 143 views
0

我试图执行查询solrj错误执行查询

http://192.168.1.101:7070/solr/locationList_shard3_replica1/select?q=*:*&fq={!geofilt}&sfield=geometry&pt=19.7599,74.8091&d=50&sort=geodist()%20desc 

它使用Solr仪表板完美地工作,但是当我从solrj错误试图

我的代码是

query.addFilterQuery("{!geofilt}&sfield=geometry&pt=" 
        + address.getGeometry() + "&d=1000000&sort=geodist() desc"); 

错误失踪元数用于空间请求

+0

在大括号&try中指定字段名称。 '{!geofilt sfield = geometry}' – vinod

+0

所有特殊字符(&etc)都将被编码,因此它们是'fq'参数的一部分 - 它们不会直接插入到URL中。 – MatsLindh

回答

1

传递给addFilterQuery的字符串是过滤器参数安静。为了清楚起见,您传递给方法addFilterQuery的字符串将被完全编码。尝试以这种方式重构查询:

query.add("fq", "{!geofilt}"); 
query.add("sfield", "geometry"); 
query.add("pt", address.getGeometry()); 
query.add("sort", "geodist() desc");