Drupal Search API con Apache Solr: instalación
En esta serie de entradas aprenderemos a instalar y configurar Apache Solr con la Search API de Drupal para hacer búsquedas rápidas en nuestra web.
Cómo instalar Drupal Search API con Apache Solr
Comenzamos con esta serie de tutoriales. En nuestro caso lo haremos sobre un servidor Linux basado en CentOS 6.5.
Pero primero… ¿Qué es Apache Solr?
Apache Solr (pronunciado ‘solar’) es una plataforma Open Source para la búsqueda de contenido. Permite la búsqueda de texto, resultado de palabras, búsqueda por facetas, integración con base de datos, agrupación dinámica y gestión de documentos de texto rico como PDF o Microsoft Word.
Apache Solr está escrito en Java y funciona como un servidor que corre sobre un servlet de Tomcat o Jetty.
INTALACIÓN DEL ENTORNO
En primer lugar instalaremos la máquina virtual de Java. Pero primero iremos a ver qué versión necesita nuestro Apache Solr.
En el momento que hemos escrito esta entrada Solr se encuentra en la versión 4.10.0, y, según su documentación, la versión recomendada de Java es la 1.7. Por lo tanto, iremos al terminar de nuestro servidor y ejecutaremos:
yum install java-1.7*
INSTALACIÓN DE SOLR
La instalación y puesta en marcha de Solr es muy sencilla. En primer lugar nos descargamos los binarios y los descomprimimos:
wget http://mirrors.sonic.net/apache/lucene/solr/4.10.0/solr-4.10.0.tgz
tar -xvf solr-4.10.0.tgz
Una vez hecho esto tenemos que trasladarlos a la carpeta donde queramos instalarlo. Nosotros hemos decidido que su lugar es /var/lib/solr, por tanto ejecutamos:
mv solr-4.10.0 /var/lib/solr
El siguiente paso será hacer una copia de la carpeta example y la llamaremos ‘core’.
Example es un proyecto base de Solr que nos permite tenerlo en marcha en pocos segundos y sin demasiados dolores de cabeza.
cp -R /var/lib/solr/example /var/lib/solr/core
¡Perfecto! Ya tenemos Solr instalado. Antes de continuar haremos un pequeño test para comprovar su funcionamiento.
Para arrancarlo de forma manual ejecutaremos:
java -jar /var/lib/solr/core/start.jar
Este programa Java se encargará de crear un contenedor Jetty para nuestro Solr y ejecutarlo en el puerto por defecto 8983. Por lo tanto, podemos dirigirnos a la interfaz web mediante esta dirección:
http://localhost:8983/solr/
Si todo ha ido bien nos mostrará esta web:
Ahora comprobaremos que se ha creado una instancia. Como hemos copiado el directorio de ejemplo, el nombre de esta instancia será ‘collection1’. Desplegamos el core selector y veremos que efectivamente aparece:
Perfecto, ya podemos parar nuestro Solr.
Para acabar instalaremos los scripts de arranque y configuraremos el servidor para que cuando se reinicie ponga en marcha el servicio.
Por suerte no tendremos que crear el script de forma manual, ya que existe un pequeño proyecto en Github llamado ‘solr-initd’ que nos lo soluciona.
Consta de 3 ficheros:
- solr.start
- solr.conf
- solr.initd
Sólo tenemos que poner cada fichero en su correspondiente fichero y configurar solr.conf:
mv solr.start /var/lib/solr/core/solr.start
mv solr.conf /etc/solr.conf
mv solr.initd /etc/init.d/solr
Modificaremos las variables SOLR_HOME y SOLR_START de solr.conf. En nuestro caso quedará así:
SOLR_HOME=/var/lib/solr/core
SOLR_START=/var/lib/solr/core/solr.start
Por último añadimos Solr en el arranque de nuestro sistema y lo arrancamos:
chkconfig solr on
service solr start
Muy bien, nuestro Solr ya está instalado y funcionando. Lo podemos comprobar de la misma forma que antes.
CONFIGURACIÓN DE LA SEARCH API CON APACHE SOLR
Una vez Solr está instalado y funcionando le tenemos que decir a nuestro Drupal donde puede encontrar este servidor. Para hacer esto necesitaremos estos dos módulos instalados y activados:
- Search api (como no)
- Search API Solr Search
Antes de continuar tenemos que hacer unos cambios en la configuración de Solr para que Search API ‘se entienda’ de forma correcta con nuestro servidor de búsqueda. Por esto tendremos que copiar unos ficheros que incluye el directorio del módulo Search API Solr Search:
yes | cp /directori-al-nostre-drupal/sites/all/modules/search_api_solr/solr-conf/4.x/* /var/lib/solr/core/solr/collection1/conf
service solr restart
Ahora iremos a Search API (admin/config/search/search_api) y añadiremos nuestro servidor. Como podréis imaginar tenemos que seleccionar como clase de servicio ‘Servicio Solr’. Hecho esto nos aparecerá un formulario donde, de momento, sólo tenemos que configurar el host, el puerto y la ruta:
Servidor Solr: localhost
Puerto: 8983
Ruta: /solr/
Una vez configurada en la vista del servidor tendremos una tabla parecida a esta:
Ya tenemos nuestra Search API correctamente configurada para comenzar a utilizar Solr como servidor de indexación de contenidos.
En el siguiente capítulo haremos una vista simple que utilizará la Search API. Además, ¡mejoraremos la seguridad de nuestro Servidor Apache Solr!
Comparte este artículo