Drupal

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.

Drauta agencia digitalDrauta

Drupal Search API con Apache Solr: instalación

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:

Drupal Apache Solr

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:

Drupal Apache Solr

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:

Drupal Apache Solr

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!

¿Quieres empezar un nuevo proyecto con nosotros?

¿Necesitas servicios para tu web? Descubre como te podemos ayudar y no dudes en contactar con nosotros.