java - 获取SOLR搜索结果

标签 java solr xml-parsing

我是使用 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/

相关文章:

php - 在 solr/lucene 中过滤存储在远程数据库中的字段的最佳方法?

mysql - Solr DataImport 编码

perl - 为什么我会收到有关在以下 Perl 脚本中使用未初始化值的警告?

java - 如何捕获 "White spaces are required between publicId and systemId."错误

java - 如何获取二维数组中的单词和行列表?

java - Hibernate - 在字段中存储 oneToMany-Relation 中的元素数量? (例如评论数量)

Solr 建议完全匹配

java - 什么是 .lck 文件?为什么我无法使用缓冲读取器读取它?

java - 应用程序在打开时立即崩溃

c# - xml.LoadData - 根级别的数据无效。第 1 行,位置 1