java从solrj获取请求url
我使用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()
始终为空。我知道solrj确实在调用solr,因为它实际上启动了一个索引请求(大多数情况下)
我如何拦截或检索solrj为我的请求构建的url强>
# 1 楼答案
如How can I transform SolrQuery(SOLRJ) to URL?中所述,您可以使用ClientUtils.toQueryString处理此问题
在javadoc中,您可以看到这个helper方法接受
SolrParams
作为输入,这就是您所拥有的。要获得完整的URL,您需要将其与代码示例中的solrIndexPath
连接起来我们应该做到这一点