2016-02-25 7 views
1

Я пришел сюда, потому что я ищу (например, упоминаемое название), чтобы выполнить запрос из geotools (через geoserver), чтобы получить функцию из индекса solr.Сделать запрос solr от Geotools через geoserver

Чтобы быть более точным:

Я видел на Geoserver руководстве, что я могу сделать запрос на Solr, как это в Http:

http://localhost:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature 
&typeName=mySolrLayer 
&format="xxx" 
&viewparams=q:"mySolrQuery" 

Важной частью по этому URL является в viewparams, что я хочу для использования непосредственно с геоталоумов.

Я уже проверить это дело (это часть моего кода):

url = new URL( 
"http://localhost:8080/geoserver/wfs?request=GetCapabilities&VERSION=1.1.0"; 
); 

    Map<String, String> param = new HashMap(); 
    params.put(WFSDataStoreFactory.URL.key, url); 
    param.put("viewparams","q:myquery"); 
    Hints hints = new Hints(); 
    hints.put(Hints.VIRTUAL_TABLE_PARAMETERS, viewParams); 
    query.setHints(hints); 


    ... 

    featureSource.getFeatures(query); 

Но здесь, кажется, не работает, URL-адрес отправить GeoServer нормальный «GET ФУНКЦИИ» запрос без параметра viewparams.

Я пробовал это с помощью geotools-12.2; geotools-13.2 и geotools-15-SNAPSHOT, но мне не удалось передать запрос, geoserver отправил мне всю функцию в моей базе данных и не воспринимал «viewparams» как параметр.

мне нужно сделать это так, потому что на самом деле запрос пришел из другой программы, и я бы легко общаться этот запрос к другой части проекта ...

Если кто-то может мне помочь?

ответ

0

В настоящее время не существует способа сделать это в WFSDatastore GeoTool implementations, поскольку запрос GetFeature построен по URL-адресу, предоставленному документом getCapabilities. Это соответствует standard, но может потребоваться сделать запрос на улучшение функции, чтобы клиенты могли переопределить эту строку (например, QGIS), которая позволит вам указать дополнительный параметр в вашем базовом URL, который затем будет передан на сервер как вам нужно.

К сожалению, модуль WFS живет в Unsupported землях в настоящее время, поэтому, если у вас нет ресурсов для работы по этой проблеме самостоятельно и can provide a PR, чтобы реализовать его, нет большой возможности для его реализации.

+0

Хорошо, спасибо за вашу информацию, это то, что я подозревал. Для моей проблемы я хочу отправить прямой URL-запрос с помощью httpclient lib из geotools, это не лучшее решение, так как мы хотим сохранить наш код. Я подумал об этом, и я думаю, что сделаю запрос на solr напрямую, используя клиент SolrJ, потому что геосервер не является обязательным для нашего отображения фактических результатов. – kavind