ver todos tiene servidor saber procesadores procesador para nucleos los cuantos como comando caracteristicas activar java solr solrj

java - todos - procesador de 2 nucleos caracteristicas



¿Cómo puedo obtener una lista de todos los núcleos en un servidor Solr usando SolrJ (3)

Una solicitud para http://localhost:8983/solr/admin/cores?action=STATUS (reemplace su propio host / puerto, por supuesto) devolverá todos los núcleos.

Estamos utilizando Solr para nuestras búsquedas y fragmentando los datos en varios núcleos. Tenemos un núcleo por semana de datos, por lo que estamos creando y eliminando núcleos dinámicamente cada semana.

¿Cómo puedo consultar un servidor Solr para obtener una lista de todos sus núcleos? JavaDoc dice que puedo usar coreAdminHandler.getCoreContainer().getCoreNames() , pero no estoy seguro de cómo construir un objeto coreAdminHandler.


Usando SolrJ como me lo preguntaste, así es como lo hice:

// 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)); }


Simplemente agregando una actualización al ejemplo de código anterior ya que varios bits han quedado en desuso desde Solr 4. El siguiente código funciona en Solr 6.1.0.

package <...>.<...>.<...>; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CoreAdminRequest; import org.apache.solr.client.solrj.response.CoreAdminResponse; import org.apache.solr.common.params.CoreAdminParams.CoreAdminAction; public class GetCores { static String SOLR_URL = "http://...:8983/solr/"; public static void getCores() { System.out.println("Building Solr server instance"); HttpSolrClient solrClient=new HttpSolrClient.Builder(SOLR_URL).build(); System.out.println("Requesting core list"); CoreAdminRequest request = new CoreAdminRequest(); request.setAction(CoreAdminAction.STATUS); CoreAdminResponse cores=null; try { cores = request.process(solrClient); } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println(" Listing cores"); List<String> coreList = new ArrayList<String>(); for (int i = 0; i < cores.getCoreStatus().size(); i++) { coreList.add(cores.getCoreStatus().getName(i)); } System.out.println(coreList.get(0)+" is the first core"); } }