我是使用 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);
我得到了正确的答案,但我要问的是,在作者写出答案之前,如何才能获得答案的内容?我知道返回的是 doc,并且我想要在生成响应页面之前获取文档中的“内容”字段。
非常感谢
最佳答案
在Java中使用Solr的标准方法是通过SolrJ 。 SolrServletRequest、SolrRequestHandler 等是 Solr 的“内部”类,不适合消费者普遍使用。
您还可以embed Solr in your application ,尽管通常不推荐这样做。
关于java - 获取SOLR搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4928897/