tutorial instalar español solr lucene indexing

instalar - Solr/Lucene: obtenga todos los nombres de campo ordenados por el número de ocurrencias en el índice



instalar solr (1)

Como se indica en Solr: Recuperar nombres de campo de un índice de solr? puedes hacer esto usando LukeRequesthandler.

Para hacerlo, debe habilitar requestHandler en su solrconfig.xml

<requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />

y llámalo

http://solr:8983/solr/admin/luke?numTerms=0

Si desea ordenar los campos por algo, debe hacerlo por su cuenta. Sugeriría usar Solrj en caso de que estés en un entorno Java.

Obtener campos usando Solrj

@Test public void lukeRequest() throws SolrServerException, IOException { SolrServer solrServer = new HttpSolrServer("http://solr:8983/solr"); LukeRequest lukeRequest = new LukeRequest(); lukeRequest.setNumTerms(1); LukeResponse lukeResponse = lukeRequest.process(solrServer ); List<FieldInfo> sorted = new ArrayList<FieldInfo>(lukeResponse.getFieldInfo().values()); Collections.sort(sorted, new FieldInfoComparator()); for (FieldInfo infoEntry : sorted) { System.out.println("name: " + infoEntry.getName()); System.out.println("docs: " + infoEntry.getDocs()); } }

El comparador utilizado en el ejemplo

public class FieldInfoComparator implements Comparator<FieldInfo> { @Override public int compare(FieldInfo fieldInfo1, FieldInfo fieldInfo2) { if (fieldInfo1.getDocs() > fieldInfo2.getDocs()) { return -1; } if (fieldInfo1.getDocs() < fieldInfo2.getDocs()) { return 1; } return fieldInfo1.getName().compareTo(fieldInfo2.getName()); } }

Quiero obtener la lista de todos los campos (es decir, los nombres de los campos) ordenados por el número de veces que aparecen en el índice de Solr, es decir: el campo que se produce con más frecuencia, el segundo campo más frecuente y así sucesivamente.

Alternativamente, obtener todos los campos en el índice y el número de veces que ocurren también sería suficiente.

¿Cómo puedo lograr esto ya sea con una sola consulta de solr o mediante solr / lucene API de Java?

El conjunto de campos no es fijo y tiene un rango de cientos. Casi todos los campos son dinámicos, a excepción de la identificación y tal vez un par más.