首页 文章

通过geoserver从Geotools进行solr查询

提问于
浏览
1

我来这里是因为我正在搜索(如提到的 Headers )从geotools(通过geoserver)进行查询以从solr索引获取特征 .

更确切地说:

我在geoserver用户手册上看到我可以在http中对solr进行查询:

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

此URL的重要部分是我想直接从geotools使用的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);

但是在这里,它似乎不起作用,发送到geoserver的url是没有viewparams参数的正常“GET FEATURE”请求 .

我用geotools-12.2尝试了这个; geotools-13.2和geotools-15-SNAPSHOT但我没有成功通过查询,geoserver发送给我数据库中的所有功能,并没有将“viewparams”作为参数 .

我需要这样做,因为实际上查询来自另一个程序,我很容易将这个查询传达给项目的另一部分......

如果有人可以帮助我?

1 回答

  • 0

    由于getFeature请求是由getCapabilities文档提供的URL构造的,因此没有_W1Datastore implementations . 这与standard要求但是可能值得制作功能增强请求以允许客户端覆盖此字符串(例如,如QGIS所做的那样),这将允许您在基本URL中指定附加参数,然后将其传递给服务器如你所愿 .

    不幸的是,目前WFS模块位于 Unsupported land,所以除非你有资源自己处理这个问题并且can provide a PR实现它,否则很有可能实现它 .

相关问题