从 solrj 获取请求 url
Get request url from solrj
我正在使用 solrj 查询索引,有时会启动重建索引。
我们遇到了一些服务器问题,因此我想验证 url solrj 是否正在构建。这是我试过的:
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,因为它确实启动了索引请求(大部分时间)。
如何拦截或检索 url solrj 正在为我的请求构建?
如 How can I transform SolrQuery(SOLRJ) to URL? you can use ClientUtils.toQueryString 中所述。
在 javadoc 中,您可以看到此辅助方法接受 SolrParams
作为输入,这就是您所拥有的。要获得完整的 URL,您需要将其与代码示例中的 solrIndexPath
连接起来。
System.out.println(solrIndexPath + ClientUtils.toQueryString(params, false));
应该可以解决问题。
我正在使用 solrj 查询索引,有时会启动重建索引。
我们遇到了一些服务器问题,因此我想验证 url solrj 是否正在构建。这是我试过的:
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,因为它确实启动了索引请求(大部分时间)。
如何拦截或检索 url solrj 正在为我的请求构建?
如 How can I transform SolrQuery(SOLRJ) to URL? you can use ClientUtils.toQueryString 中所述。
在 javadoc 中,您可以看到此辅助方法接受 SolrParams
作为输入,这就是您所拥有的。要获得完整的 URL,您需要将其与代码示例中的 solrIndexPath
连接起来。
System.out.println(solrIndexPath + ClientUtils.toQueryString(params, false));
应该可以解决问题。