使用 solrj 获取 Solr instanceDir 的路径

Get path to Solr instanceDir with solrj

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

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

那么如何用solrj判断这个集合的目录是叫foobar_1还是foobar_0呢?

您的问题是如何使用 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);