• Juan Montoya

Uso de Logstash para enviar datos a Workplace Search (Elasticsearch)


Elasticsearch ha creado un nuevo servicio llamado "Workplace search" el cuál es una herramienta fantástica para las empresas que necesitan realizar búsquedas rápidas en su base de conocimiento ¡Esta base de conocimiento podría ser archivos PDF, bases de datos, APIs o cualquier fuente que desees!


Ejemplo de como luce "Workplace search"

En este tutorial, veremos cómo consumir APIs utilizando Logstash, pero puedes cambiar la fuente de datos por la de tu preferencia.


Antes de comenzar necesitas algunas cosas:

  1. Un binario Logstash ( https://www.elastic.co/es/downloads/logstash ).

  2. Para utilizar el clúster de Elasticsearch con Workplace Search puedes descargar el Elasticsearch de prueba para probar esta función (debes activar el módulo Workplace Search).

  3. Una cuenta de desarrollador de New York Times ( https://developer.nytimes.com/ ) o cualquier API que desees usar.

  4. Un editor de código fuente como Atom o VScode (Opcional)

  5. Postman (opcional)


¡Hagámoslo!


Crear una fuente API personalizada


Lo primero que debemos hacer es crear una fuente personalizada en la consola de Workplace search; para ello, abre el menú izquierdo y haz clic en "fuentes" (sources en inglés):

Ahora haga clic en el botón verde que dice Agregar una fuente de contenido compartido , cuando haya hecho esto, seleccione la fuente API personalizada y escriba el nombre de su fuente API, en este caso, el nombre será New York Times:

Ahora que hemos creado nuestra fuente API personalizada, en la fuente API podemos ver el token de acceso, que es único para todas las API de búsqueda en el lugar de trabajo y una clave que es un valor único para cada fuente API que cree.

Comprender los resultados de las APIs


Antes de indexar los datos en Workplace Search, es importante revisar los resultados que devuelve la API ; para ello, podemos utilizar Postman haciendo una solicitud GET a la API , por supuesto, puedes realizar la solicitud utilizando su navegador web, una operación de cURL o cualquier cosa que desees utilizar, la parte importante tiene un resultado formateado para analizar la respuesta ¡esto será importante en la búsqueda!

Cuando ya hayas identificado los componentes principales de tu respuesta y los campos importantes para Workplace Search (la URL , el cuerpo y el Título), podemos proceder a indexar estos documentos a Elasticsearch para usarlos en Workplace. Recuerda que Workplace Search tiene campos predeterminados que son importantes para la búsqueda, pero puedes agregar cualquier campo adicional si lo deseas.


Procesamiento e indexación con Logstash


La primera parte de un pipeline de Logstash es la entrada, en este caso, para la entrada vamos a usar el complemento http_poller y hacer una solicitud que devuelva las revisiones de Kill Bill en el API del New York Times , esta parte podría cambiarse por cualquier fuente de datos que quiera usar.

Ahora tenemos que hacer los filtros, para esta parte es importante tener una comprensión clara de la estructura de la respuesta a la solicitud, debemos cambiar el nombre de algunos campos (unificando el esquema entre la API y Workplace search ), y si lo necesitas puedes realizar cambios en el contenido utilizando los filtros Logstash.


Por último, indexaremos todos estos datos en Workplace Search, luego debemos hacer una PUBLICACIÓN de cURL en la API de Workplace Search: para esta parte es importante tener la Clave de nuestra API de Workplace Search y el token de autenticación correspondiente (es lo mismo que creamos en la primera sección) así, como el punto final de Workplace Search, siendo el mismo que utiliza para unirse a la consola de administración de Workplace Search.



Para complementos no incluidos por defecto, puedes instalarlos ejecutando bin/logstash-plugin install logstash-output-exec. Consulta: Trabajar con complementos para obtener más detalles.

Ahora tenemos las 3 partes de un pipeline de logstash y con esto, podemos usar Logstash para indexar datos en Workplace Search

Como sabemos aún queda mucho por aprender sobre Elasticsearch, por lo que si tienes alguna pregunta,


No seas tímido, escríbenos: