Agrupar y contar registros repetidos en Apache Solr

  • 23 Feb 2020
  • Apache Solr

Cuando necesitamos conocer los registros que más se repiten en una tabla y a su vez, cuantas veces se repiten, ejecutamos una cosulta que tiene más o menos esta forma:

SELECT field_image_model_value,
       COUNT(*) AS counter
FROM prefix_field_revision_field_image_model
GROUP BY field_image_model_value
ORDER BY counter DESC
LIMIT 10;

Para obtener el mismo resultado realizando una conslta a Apache Solr se deberá utilizar faceting. Para hacer todo por consola podría resultar útil instalar jq para que el resultado en JSON de Solr sea más fácil de leer

dnf install jq -y

Suponiendo que nuestro core en Solr se llame website, podremos agrupar y contar los valores que se repiten en la columna field_image_model_value ejecutando:

wget -cq "http://localhost:8983/solr/website/select?q=&facet=true&facet.field=im_field_image_model" -O - | jq '.'

Encontraremos en el resultado la variable facet_counts, contenedor a su vez de un array con los valores id, count