我來這裏是因爲我正在搜索(如提到的標題)從geotools(通過geoserver)執行查詢以從solr索引獲取功能。通過地理服務器從Geotools進行solr查詢
爲了更精確:
我上,我可以在HTTP做查詢上Solr的這樣的GeoServer用戶手冊看到:
http://localhost:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature
&typeName=mySolrLayer
&format="xxx"
&viewparams=q:"mySolrQuery"
這個網址的重要組成部分,是我想要的viewparams直接從geotools中使用。
我已經測試此情況下(這是我的代碼的一部分):
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」作爲參數。
我需要做的是這樣的,因爲實際上查詢從另一個程序來,我會很容易溝通此查詢到該項目的另一部分...
如果有人能幫助我嗎?
好的,謝謝你的信息,這是我所懷疑的。 對於我的問題,我選擇使用來自geotools的httpclient lib發送一個直接的URL請求,這不是最好的解決方案,因爲我們想維護我們的代碼。我想到了這一點,我想我會直接通過使用SolrJ客戶端對solr進行查詢,因爲geoserver在我們的實際顯示結果中不是強制性的。 – kavind