Java 从SOLR搜索中获取结果
我对使用SOLR作为搜索者是新手。我使用标准的SolrServlet作为搜索程序,例如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
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实现这一点——它已经包含在插件中,应该更简单