使用 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是:
- 通过Core Admin API:
http://localhost:8983/solr/admin/cores?action=STATUS&core=myCore
- 或通过Core Overview: http://localhost:8983/solr/myCore/admin/system
此代码使用 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);
如何使用 solrj 获取到 instanceDir 的路径?
我知道 SOLR_HOME 的路径,我知道集合的实际名称,但集合的实际 instanceDir 可能不同。
例如名称为 "foo" 的集合可能在目录 solr_home/foobar_1/
或 solr_home/foobar_0/
那么如何用solrj判断这个集合的目录是叫foobar_1还是foobar_0呢?
您的问题是如何使用 solrj 获取 solr 核心的 InstanceDir。
得到这个信息对应的URL是:
- 通过Core Admin API: http://localhost:8983/solr/admin/cores?action=STATUS&core=myCore
- 或通过Core Overview: http://localhost:8983/solr/myCore/admin/system
此代码使用 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);