使用solrj获取Solr instanceDir的路径

时间:2016-01-28 17:19:24

标签: solr solrj

如何使用solrj获取instanceDir的路径?

我知道SOLR_HOME的路径,我知道集合的实际名称,但集合的实际instanceDir可能不同。 例如名为" foo"的集合可能在目录solr_home/foobar_1/solr_home/foobar_0/

那我如何才能知道这个集合的目录是用forar_1调用的还是foobar_0?

1 个答案:

答案 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);