[Solr] get list cores from your RequestHandler
In Solr, RequestHandler are called from a specific core.
But, there is many cases where we want to have more information from other cores.
The easist way is to get this information directly from the the request parameter. Indeed, in your handleRequestBody:
-
@Override
Get your current core.
-
final SolrCore core = req.getCore();
Retrieve CoreContainer using core object.
CoreContainer contain all cores, so, can be used easily to get all cores.
-
final Collection<SolrCore> cores = core.getCoreDescriptor().getCoreContainer().getCores();
A loop can be used to display our cores.
-
for (SolrCore solrCore : cores) {
-
log.info(solrCore.getName());
-
}
😉 you can call a get to retrieve a specific core
-
SolrCore core1 = core.getCoreDescriptor().getCoreContainer().getCore("core1");
Update : Don’t forget to close your core after exploitation with core.close()
Be care of CoreContainer().getCore(“…”) because it will increase core ref’ counts. Do not forgot to core.close()
Thank you for this information