El verdadero rico no es el que tiene mucho dinero sino el que tiene tiempo para estar con la gente que quiere y hacer lo que le gusta.

Buscador en Symfony 2 con ElasticSearch

Buscador en Symfony 2 con ElasticSearch

Publicado el 14 marzo, 2016 por | Categoría:

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:

2. Para instalar JAVA vamos a utilizar OpenJDK que es un paquete nativo de Ubuntu:

3. Para verificar la correcta instalación de JAVA podemos ver su versión:

4. Como parte de la instalación de ElasticSearch inicialmente tenemos que descargar e instalar una clave pública:

5. Tenemos que crear un Repo List para elasticsearch:

6. Ya estamos listos para instalar ElasticSearch, vamos actualizar la lista de repositorios de nuestro sistema operativo:

7. Instalamos ElasticSearch:

8. Ejecutamos esta sentencia para que ElasticSearch se ejecute automáticamente al arrancar nuestro sistema operativo:

9. Para finalizar tenemos que hacer una breve configuración a ElasticSearch, para ello vamos abrir su respectivo archivo de configuración:

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:

11. Podemos verificar el correcto funcionamiento de ElasticSearch mediante este test:

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!!!

firma emm

 


Repositorio oficial

Por favor comparte esta lección:

¿Te gustó el artículo? ¡Suscríbete ahora mismo!

Recibe mis últimos artículos, recursos, tutoriales y mucho más.

, , ,

Comentarios

  • Pablo Rojas

    Edson en caso querer usar esto con xampp, como hacemos?

    • Edson

      Es independiente del servidor Pablo, ElasticSearch debes instalarlo en tu SO, así que dependiendo el SO que utilices lo descargas e instalas.Saludos!

  • Fede Dax

    buenas! muy buenos vídeos, te sigo desde el 1ro. me gustaria saber si podes implementar en algun video un formulario embebido con otro, con relacion one to many, mas en particular el uso de prototype en twig.. desde ya muchas gracias y continua con la buena onda! saludos.

    • Edson

      Hola Fede! que bueno que el curso de Symfony 2 te sea útil. Respecto a tu sugerencia lo tomaré en cuenta para futuros tutoriales, ya vamos a llegar a la parte de asociaciones así que no te pierdas el resto del curso. Saludos!

  • Rony

    Tengo un problema cuando ejecuto este comando:
    $ php app/console fos:elastica:populate
    Resetting app

    Parse error: syntax error, unexpected end of file, expecting function (T_FUNCTION) in /home/ubuntu/workspace/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php on line 203

    [SymfonyComponentDebugExceptionFatalErrorException]
    Parse Error: syntax error, unexpected end of file, expecting function (T_FUNCTION)

    fos:elastica:populate [–index [INDEX]] [–type [TYPE]] [–no-reset] [–offset OFFSET] [–sleep SLEEP] [–batch-size BATCH-SIZE] [–ignore-errors] [–no-overwrite-format]

  • Francisco Morales

    Todo bien, sin errorres, PEEERO, no me encuentra nada el elastic search. Esten o no los usuarios, me muestra: “No search results”

    • Edson

      Hola Francisco, te recomiendo que verifiques si instalaste bien Elasticsearch y que también revises el código, no olvides que tienes el repositorio del proyecto a tu disposición. Saludos.

      • Francisco Morales

        Tuve problemas para instalar, pero viendo la documentación de elastic search, ya pasé ese obstáculo. En fin solo era cuestión de checkear el codigo y no estaba pasando la variable $searchQuery. Ya está solucionado. Buscador con Elastic search andando.

        Ahora, ¿este buscador se podría optimizar para que busque por carateres?. Ejemplo si busco “mora”, que me muestre usuarios que tengan esa cadena.

        Gracias Edson