如何使用SolrJ获取solr服务器中所有内核的列表

2022-09-02 19:25:29

我们使用Solr进行搜索,并在多个内核上对数据进行分片。我们每周有一个核心数据,因此我们每周动态创建和删除核心。

如何查询 solr 服务器以获取其所有内核的列表?JavaDoc说我可以使用,但我不知道如何构建一个coreAdminHandler对象。coreAdminHandler.getCoreContainer().getCoreNames()


答案 1

请求(当然是替换您自己的主机/端口)将返回所有内核。http://localhost:8983/solr/admin/cores?action=STATUS


答案 2

按照您的要求使用SolrJ,以下是我的做法:

// Solr server instance
CommonsHttpSolrServer solrServer = ...;

// Request core list
CoreAdminRequest request = new CoreAdminRequest();
request.setAction(CoreAdminAction.STATUS);
CoreAdminResponse cores = request.process(solrServer);

// List of the cores
List<String> coreList = new ArrayList<String>();
for (int i = 0; i < cores.getCoreStatus().size(); i++) {
    coreList.add(cores.getCoreStatus().getName(i));
}

推荐