Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从SOLR搜索中获取结果_Java_Solr_Xml Parsing - Fatal编程技术网

Java 从SOLR搜索中获取结果

Java 从SOLR搜索中获取结果,java,solr,xml-parsing,Java,Solr,Xml Parsing,我对使用SOLR作为搜索者是新手。我使用标准的SolrServlet作为搜索程序,例如 final SolrCore core = SolrCore.getSolrCore(); SolrServletRequest solrReq = new SolrServletRequest(core, request); SolrQueryResponse solrRsp = new SolrQueryResponse(); try { SolrRequestHandler handler = c

我对使用SOLR作为搜索者是新手。我使用标准的SolrServlet作为搜索程序,例如

final SolrCore core = SolrCore.getSolrCore();
SolrServletRequest solrReq = new SolrServletRequest(core, request);
SolrQueryResponse solrRsp = new SolrQueryResponse();
try {

  SolrRequestHandler handler = core.getRequestHandler(solrReq.getQueryType());
  if (handler==null) {
    log.warning("Unknown Request Handler '" + solrReq.getQueryType() +"' :" + solrReq);
    throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,"Unknown Request Handler '" + solrReq.getQueryType() + "'", true);
  }
  core.execute(handler, solrReq, solrRsp );
  if (solrRsp.getException() == null) {
    QueryResponseWriter responseWriter = core.getQueryResponseWriter(solrReq);
    response.setContentType(responseWriter.getContentType(solrReq, solrRsp));
    PrintWriter out = response.getWriter();
    Set<String> fields = new HashSet<String>();
    fields.add("content");        
    solrRsp.setReturnFields(fields);
    responseWriter.write(out, solrReq, solrRsp);
final SolrCore core=SolrCore.getSolrCore();
SolrServletRequest solrReq=新的SolrServletRequest(核心,请求);
SolrQueryResponse solrRsp=新的SolrQueryResponse();
试一试{
SolrRequestHandler=core.getRequestHandler(solrReq.getQueryType());
if(handler==null){
log.warning(“未知请求处理程序””+solrReq.getQueryType()+“:”+solrReq);
抛出新的SolrException(SolrException.ErrorCode.BAD_请求,“未知请求处理程序””+solrReq.getQueryType()+“”,true);
}
execute(handler、solrReq、solrRsp);
if(solrRsp.getException()==null){
QueryResponseWriter responseWriter=core.getQueryResponseWriter(solrReq);
response.setContentType(responseWriter.getContentType(solrReq,solrRsp));
PrintWriter out=response.getWriter();
Set fields=new HashSet();
字段。添加(“内容”);
solrRsp.setReturnFields(字段);
写下(输出,solrReq,solrRsp);
我得到了正确的答案,但我要问的是,在作者写下回复之前,我如何才能得到回复的内容?我知道返回的是doc,我想在生成回复页面之前,在文档中有一个字段“content”


非常感谢

在Java中使用Solr的标准方式是通过。SolrServletRequest、SolrRequestHandler等是Solr的“内部”类,不打算被消费者普遍使用


你也可以,尽管通常不建议这样做。

谢谢你的回答,问题是,有没有办法只获取字段的内容?因为我不想创建新的应用程序,只需使用solr本身,始终使用相同的查询。实际上,我获取了SolrServlet的源代码,并将其重新映射到web.xml。我正在深入了解他的servlet,但不知道如何获取字段的值。尝试使用velocity实现这一点——它已经包含在插件中,应该更简单