如何使用solrj获取instanceDir的路径?
我知道SOLR_HOME的路径,我知道集合的实际名称,但集合的实际instanceDir可能不同。
例如名为" foo"的集合可能在目录solr_home/foobar_1/
或solr_home/foobar_0/
那我如何才能知道这个集合的目录是用forar_1调用的还是foobar_0?
答案 0 :(得分:2)
您的问题是如何使用solrj获取solr核心的InstanceDir。
获取此信息的相应URL是:
此代码使用solrj获取信息:
SolrClient client = new HttpSolrClient("http://localhost:8983/solr/");
String core = "myCore";
// Core Admin API
CoreAdminRequest status = new CoreAdminRequest();
status.setAction(CoreAdminAction.STATUS);
status.setCoreName(core);
CoreAdminResponse rspStatus = status.process(client);
String instanceDirCore = (String) rspStatus.getCoreStatus().findRecursive(core, "instanceDir");
System.out.println(instanceDirCore);
// Core Overview
GenericSolrRequest system = new GenericSolrRequest(METHOD.GET, "/admin/system", new ModifiableSolrParams());
SimpleSolrResponse rsp = system.process(client, core);
String instanceDir = (String) rsp.getResponse().findRecursive("core", "directory", "instance");
System.out.println(instanceDir);
assert instanceDir.equals(instanceDirCore);