java - 从 solrj 获取请求 url

标签 java solr solrj

我使用 solrj 来查询索引,有时会启动重新索引。

我们遇到了一些服务器问题,因此我想验证 solrj 正在构建的 url。这是我尝试过的:

public void indexSolr() throws SolrServerException, IOException {
    HttpSolrServer solr = new HttpSolrServer(solrIndexPath);
    logger.info("Indexing cp solr at " + solrIndexPath);

    // reindex to pickup new articles
    ModifiableSolrParams params = new ModifiableSolrParams();
    params.set("qt", "/" + solrDataImportPath);
    params.set("command", "full-import");
    params.set("clean", "true");
    params.set("commit", "true");
    QueryResponse response = solr.query(params);
    logger.info("index url: " + response.getRequestUrl());
}

问题出在最后一行。 getRequestUrl() 始终为 null。我知道 solrj 确实正在调用 solr,因为它实际上启动了索引请求(大多数时候)。

如何拦截或检索 solrj 为我的请求构建的 url?

最佳答案

How can I transform SolrQuery(SOLRJ) to URL? 中所述您可以使用ClientUtils.toQueryString对于此事。

在 javadoc 中,您可以看到此帮助器方法接受 SolrParams 作为输入,这就是您所拥有的。要获取完整的 URL,您需要将其与代码示例中的 solrIndexPath 连接起来。

System.out.println(solrIndexPath + ClientUtils.toQueryString(params, false));

应该可以解决问题。

关于java - 从 solrj 获取请求 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29550012/

相关文章:

java - 通过统计灰度值 (Java) 自动裁剪扫描图像的黑色边框

java - 我在 java 方法代码中遇到问题,该代码返回两个数字的除法

java - spring data cassandra 默认限制 10

java - 使用 Zookeeper 主机字符串对 Solr Cloud 进行身份验证

java - 使用 Solr 索引文件会阻塞文件

java - 类无法实例化

java - 如何在 IToolBarManager 上添加 JComboBox

ajax - 保护Ajax查询的Solr服务器

java - 基于 Solr 规则的提升

java - solrj 在特定字段上搜索