如何使用SolrJ获取solr服务器中所有内核的列表
我们使用Solr进行搜索,并在多个内核上对数据进行分片。我们每周有一个核心数据,因此我们每周动态创建和删除核心。
如何查询 solr 服务器以获取其所有内核的列表?JavaDoc说我可以使用,但我不知道如何构建一个coreAdminHandler对象。coreAdminHandler.getCoreContainer().getCoreNames()
我们使用Solr进行搜索,并在多个内核上对数据进行分片。我们每周有一个核心数据,因此我们每周动态创建和删除核心。
如何查询 solr 服务器以获取其所有内核的列表?JavaDoc说我可以使用,但我不知道如何构建一个coreAdminHandler对象。coreAdminHandler.getCoreContainer().getCoreNames()
请求(当然是替换您自己的主机/端口)将返回所有内核。http://localhost:8983/solr/admin/cores?action=STATUS
按照您的要求使用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));
}