El rápido servidor de búsquedas que utilizan grandes empresas y que encaja a la perfección en BigData
El software de búsquedas elasticseach es utilizado en la actualidad por grandes empresas como Wikipedia, Foursquare o Github para indexar grandes volúmenes de documentos y realizar búsquedas sobre ellos en pocos milisegundos.
¿Qué es elasticSearch?
elasticSearch es un servidor de búsquedas distribuido o lo que es lo mismo un software que se instala en uno o más servidores y que permite indexar datos. El servidor de búsquedas elasticsearch permite ejecutarse en un solo servidor o sobre un cluster de forma distribuida alcanzando tamaños de datos increibles. elasticsearch dispone de una api restful que responde en JSON y donde una vez indexados los datos se pueden consultar de manera fácil y a gran velocidad.
¿Para que utilizar elasticSearch?
Los principales usos de elastic search son las búsquedas de contenidos, las búsquedas en logs y el análisis de las aplicaciones. Aunque elasticseach se puede utilizar para cualquier proyecto donde se deba poder buscar información de forma rápida, por lo tanto elasticsearch entra en infinidad de proyectos. Un ejemplo de consulta documental o de contenidos es cualquier buscador dentro de una tienda online o en una página web. Se pueden indexar documentos, artículos o productos y consultar el índice a una velocidad de vértigo.
Otro ejemplo, en una aplicación web a gran escala, esta por norma general utiliza distintos servidores para funcionar y una de las opciones más utilizadas es transferir e indexar todos los logs que generan este grupo de servidores hacia un punto central con elasticsearch, de esta manera y trabajando en conjunto con kibana, se dispone de un panel centralizado donde ver los posibles alteraciones del sistema, fallos y otro tipo de estadísticas en tiempo real, esto evita entrar en cada uno de los servidores para descargar los logs, cosa inviable. En SEO se puede utilizar esta misma técnica para la recolección y el análisis de logs SEO y estimar el crawl budget. También es común para la visualización otros tipos de estadísticas y métricas
Ventajas de elasticsearch
- Velocidad de búsqueda e indexación
- Compatibilidad con diferentes sistemas
- Facil Escalabilidad
Ejemplos de utilización de elasticsearch
- ebay: Monitorización de sistemas
- vimeo: Búsquedas de videos
- dell: Búsquedas en la tienda online en más de 21 idiomas
elasticsearch tutorial con docker
Tras instalar docker crear una red propia con nombre elasticnet o cualquier otro nombre
docker network create --subnet=172.18.0.0/24 elasticnet
Descargar la imagen desde el repositorio de elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.1.1
Crear y arrancar un contenedor en la red creada asignando una IP de la red en concreto y montando un volumen en un directorio local /mnt/data/elk para la persistencia de datos, se puede crear y escoger este directorio local o crear cualquier otro
docker run --name elk --hostname elk.domain.local --net elasticnet --ip 172.18.0.3 --restart always -d -v /mnt/data/elk:/usr/share/elasticsearch/data -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.1.1
Probando la api del servidor de elasticsearch
curl http://172.18.0.3:9200
Comandos y consultas útiles a elasticseach
ElasticsSearch dispone de una ApiRest a la cual se le pueden lanzar las peticiones, aquí algunos comandos básicos:
Comprobar que elasticsearch esta funcionando
curl http://172.18.0.3:9200
Listar todos los indices de elasticsearch
curl http://172.18.0.3:9200/_cat/indices?v
Ver las propiedades de un índice (sustituir nombredelindice por un índice válido listado en la petición de ver todos los índices)
curl http://172.18.0.3:9200/nombredelindice/?pretty
Listar la configuración de un índice
curl http://172.18.0.3:9200/nombredelindice/_settings?pretty
Más información en la página oficial de elasticSearch