
Buscador en Symfony 2 con ElasticSearch
ElasticSearch es un software creado por Shay Banon que esta desarrollado en JAVA, esta herramienta nos ayuda a implementar una búsqueda full-text bastante potente, aplicaciones como GitHub, WordPress y Stackoverflow utilizan este software ya que una de sus potencialidades es proveernos de un API para poder aplicarlo en otras tecnologías. En esta nueva lección que forma parte del curso de Symfony 2 vamos a implementar este software dentro de nuestra aplicación, para ello vamos a hacer uso del bundle FOSElasticaBundle el cual nos va permitir implementar ElasticSearch en nuestro proyecto de asignaciones.
Vamos a comenzar instalando ElasticSearch dentro de nuestro sistema operativo (Ubuntu 14.04 en el caso de Cloud9) para ello a continuación voy a describir cada uno de los comandos necesarios para tener instalado este software:
1. Actualizamos la lista de repositorios de nuestro sistema operativo:
1 |
sudo apt-get update |
2. Para instalar JAVA vamos a utilizar OpenJDK que es un paquete nativo de Ubuntu:
1 |
sudo apt-get install openjdk-7-jre |
3. Para verificar la correcta instalación de JAVA podemos ver su versión:
1 |
java -version |
4. Como parte de la instalación de ElasticSearch inicialmente tenemos que descargar e instalar una clave pública:
1 |
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - |
5. Tenemos que crear un Repo List para elasticsearch:
1 |
echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.list |
6. Ya estamos listos para instalar ElasticSearch, vamos actualizar la lista de repositorios de nuestro sistema operativo:
1 |
sudo apt-get update |
7. Instalamos ElasticSearch:
1 |
sudo apt-get install elasticsearch |
8. Ejecutamos esta sentencia para que ElasticSearch se ejecute automáticamente al arrancar nuestro sistema operativo:
1 |
sudo update-rc.d elasticsearch defaults 95 10 |
9. Para finalizar tenemos que hacer una breve configuración a ElasticSearch, para ello vamos abrir su respectivo archivo de configuración:
1 |
sudo vim /etc/elasticsearch/elasticsearch.yml |
En este punto tenemos que buscar la linea que contiene la sentencia network.host para posteriormente descomentarlo y reemplazar su valor por localhost.
10. Procedemos a reiniciar el servicio de ElasticSearch:
1 |
/etc/init.d/elasticsearch restart |
11. Podemos verificar el correcto funcionamiento de ElasticSearch mediante este test:
1 |
curl -X GET 'http://localhost:9200' |
Listo! hasta este punto ya tenemos instalado y ejecutado ElasticSearch, a continuación vamos instalar el bundle FOSElasticaBundle el cual nos provee de una documentación bastante completa para implementarlo dentro de nuestros proyectos en Symfony 2. Finalmente vamos crear un formulario dentro de nuestro módulo de usuarios el cual nos va permitir ingresar un termino de búsqueda para que este sea procesado dentro de nuestro controlador y nos devuelva un correcto resultado de dicha búsqueda.
Sin más te dejo con el video donde te hablo de todo lo mencionado anteriormente y otras características más puestas a la práctica:
Ahora dime tu, qué te pareció la implementación de ElasticSearch dentro de nuestro proyecto de asignaciones? la verdad que a mi me pareció bastante interesante esta herramienta y sumado a eso el API que nos proporciona el cual nos permite aplicarlo en otras tecnologías como en nuestro caso en PHP con Symfony 2. Como siempre me gustaría saber tu opinión respecto a esta lección y es por ello que te invito a dejar tu comentario acá abajo contándome cómo te fue a ti. Ya para finalizar quisiera que esta lección y el curso como tal llegue a muchas personas, por tal razón es que te pido por favor que compartas esta lección en tus redes sociales. Gracias!
Sigue todas las lecciones del curso AQUÍ.
Saludos!!!
Por favor comparte esta lección:
Comentarios