我有一个solr查询“http:// localhost:8080 / solr / select /?q = A”。我需要在我的java代码中读取参数“q”。我怎么能得到这个? / p>
谢谢, 元帅
答案 0 :(得分:7)
request.getParameter("q");
可以解决问题。
答案 1 :(得分:1)
如果您有URL表单中的查询,则可以使用URL.getQuery(),然后必须在=
和&
拆分字符串以找到正确的元素,如下所示:
public String getQueryPart(URL url, String key) {
String query = url.getQuery();
if(query == null)
return null;
String[] parts = query.split("[&=]");
for(int i = 0; i < parts.length; i+=2) {
if(parts[i].equals(key)) {
return parts[i+1];
}
}
}
如果要查询多个参数,最好将拆分字符串一次存储在地图中并多次查询。
当然,如果你在servlet或类似的服务器端代码中使用它,这个精确的URL调用,有更好的方法来获取servlet API中的参数(如Deepak所写)。
答案 2 :(得分:0)
取决于你的情况。
你想从哪里获得这个参数?你是如何准确使用Solr的?
BTW,/select
只是用于将请求映射到主Solr servlet的URL的一部分(等待它......)SolrServlet - org.apache.solr.servlet.SolrServlet
(从v4弃用) ,现在使用solr.StandardRequestHandler
,这是因为它处理搜索请求,有时也称为Solr Server。