2016-08-29 17 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"); 

ошибка отсутствует sfield для пространственного запроса

+0

Укажите название поля внутри брекеты и попробуйте. '{! 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");