En entornos de desarrollo/prueba suele ser frecuente necesitar borrar datos de prueba, para comenzar una nueva etapa de pruebas con instancias limpias. En bases de datos SQL esto se traduce a ejecutar sentencias DELETE para eliminar datos y DROP para eliminar tablas/bases temporales o dinámicas. Para el caso de una aplicación que trabaja con un índice implementado en Solr, ¿de qué forma es posible borrar todos los documentos del índice (lo que equivale a hacer un "DELETE" o "DROP" de todos los datos)? Con una simple consulta.

Solr es un servidor de búsqueda con el cual las aplicaciones se comunican utilizando XML y HTTP, para indexar documentos o realizar búsquedas. Soporta una especificación de esquemas enriquecidos, lo que permite una gran flexibilidad al momento de lidiar con diferentes tipos de documentos, y posee un extensa API para desarrollar criterios de búsqueda personalizados.

Para eliminar todos los documentos del índice es necesario utilizar una consulta que seleccione todos los documentos, encerrada en un comando "delete". Solr utiliza el lenguaje XML para sus consultas, por ende esta consulta se expresa de la siguiente forma:

<delete><query>*:*</query></delete>

Y luego del delete es necesario hacer un commit. Como resultado, se deben utilizar las siguientes consultas:

<delete><query>*:*</query></delete>
<commit/>

Desde línea de comandos

Para correr estas consultas desde línea de comandos, en el servidor, es posible utilizar curl (apt-get install curl):

# curl http://localhost:8983/solr/update --data '<delete><query>*:*</query></delete>' -H 'Content-type:text/xml; charset=utf-8'
# curl http://localhost:8983/solr/update --data '<commit/>' -H 'Content-type:text/xml; charset=utf-8'

Desde un navegador

Si se permite el acceso al puerto 8983, es posible ejecutar las consultas desde un navegador Web en un cliente accediendo a las siguientes URLs:

http://solr.linuxito.com:8983/solr/update?stream.body=<delete><query>*:*</query></delete>
http://solr.linuxito.com:8983/solr/update?stream.body=<commit/>

De esta forma se "limpia" el índice de documentos cada vez que es necesario.

Referencias

FAQ - Solr Wiki

Solr Quick Start


Tal vez pueda interesarte


Compartí este artículo