Elasticsearch es un motor de búsqueda de código disponible desarrollado por Elastic. Está basado en Apache Lucene y proporciona un motor de búsqueda de texto completo distribuido, con capacidad para múltiples inquilinos, que cuenta con una interfaz web HTTP y documentos JSON sin esquema. Hay clientes oficiales disponibles en Java, C#, PHP, Python, Ruby y otros lenguajes. Según el ranking DB-Engines, Elasticsearch es el motor de búsqueda empresarial más popular. Se utiliza a menudo para la búsqueda vectorial y potencia aplicaciones en contextos de inteligencia artificial y aprendizaje automático.
Elasticsearch es distribuido y utiliza documentos JSON almacenados en índices divididos en fragmentos, cada uno de los cuales puede tener réplicas distribuidas entre los nodos del clúster. Admite búsqueda de texto completo, búsqueda facetada, búsqueda en tiempo real y múltiples inquilinos. El software se desarrolla junto con Logstash, Kibana y Beats como parte del Elastic Stack (anteriormente ELK Stack).
Historia
Shay Banon creó el precursor de Elasticsearch, llamado Compass, en 2004. Al desarrollar una tercera versión de Compass, concluyó que era necesaria una reescritura completa para construir una solución de búsqueda distribuida y escalable que usara JSON sobre HTTP como interfaz común. Publicó la primera versión de Elasticsearch en febrero de 2010.
Elastic NV se fundó en 2012 para proporcionar servicios y productos comerciales en torno a Elasticsearch y software relacionado. En junio de 2014, la empresa recaudó 70 millones de dólares en una ronda de financiación Serie C liderada por New Enterprise Associates, con financiación adicional de Benchmark Capital e Index Ventures, lo que elevó la financiación total a 104 millones de dólares.
En marzo de 2015, la empresa cambió su nombre de Elasticsearch a Elastic y, mediante la adquisición de Found, lanzó una oferta de nube gestionada conocida posteriormente como Elastic Cloud. En noviembre de 2017, Elastic adquirió la startup de búsqueda Swiftype, cuya tecnología se convirtió en la base de Elastic App Search y Elastic Site Search. Elastic también formó alianzas con Google para ofrecer Elastic Cloud en Google Cloud Platform y con Alibaba para ofrecer Elasticsearch y Kibana en Alibaba Cloud.
En junio de 2018, Elastic presentó una solicitud de oferta pública inicial con una valoración estimada de entre 1.500 y 3.000 millones de dólares. El 5 de octubre de 2018, Elastic se listó en la Bolsa de Valores de Nueva York.
Cambios de licencia
En enero de 2021, Elastic anunció que, a partir de la versión 7.11, Elasticsearch y Kibana se relicenciarían de Apache License 2.0 a una licencia dual bajo la Server Side Public License y la Elastic License, ninguna de las cuales se reconoce como licencia de código abierto. Elastic declaró que el cambio era una respuesta a Amazon Web Services (AWS), que ofrecía Elasticsearch y Kibana como servicio sin lo que Elastic describió como una colaboración adecuada. Los críticos del cambio señalaron que Elastic había prometido anteriormente no alterar nunca la licencia Apache 2.0 de Elasticsearch, Kibana, Beats y Logstash, y predijeron que la medida dañaría el ecosistema.
AWS respondió anunciando una bifurcación de los proyectos para continuar su desarrollo bajo Apache License 2.0. Otros miembros del ecosistema de Elasticsearch, incluidos Logz.io, CrateDB y Aiven, también se comprometieron a respaldar una bifurcación. Debido a posibles conflictos de marcas comerciales con el nombre "Elasticsearch", AWS renombró su bifurcación como OpenSearch en abril de 2021.
En agosto de 2024, Elastic añadió la GNU Affero General Public License como tercera opción de licencia para Elasticsearch a partir de la versión 8.16.0. Esto hizo que el software estuviera disponible nuevamente bajo una licencia libre y de código abierto, junto con las dos opciones de código disponible.
Arquitectura y características
Elasticsearch está construido sobre Apache Lucene y expone las capacidades de Lucene a través de una API JSON y Java. Los documentos se almacenan en índices, que se dividen en fragmentos primarios; cada fragmento puede tener cero o más réplicas distribuidas entre los nodos del clúster. El enrutamiento y el reequilibrio se gestionan automáticamente. Una vez creado un índice, el número de fragmentos primarios no se puede cambiar.
El motor admite búsqueda facetada y percolación, una forma de búsqueda prospectiva en la que las consultas almacenadas se comparan con los documentos entrantes en lugar de al revés. Un módulo de puerta de enlace gestiona la persistencia de índices a largo plazo, lo que permite recuperar un índice después de un fallo de nodo. Las solicitudes GET en tiempo real hacen que Elasticsearch sea utilizable como almacén de datos NoSQL, aunque no admite transacciones distribuidas.
En mayo de 2019, Elastic puso a disposición sin cargo las funciones de seguridad principales del Elastic Stack, incluido TLS para comunicaciones cifradas, autenticación de archivos y realm nativo, y control de acceso basado en roles para API de clúster e índices. El código fuente correspondiente está disponible bajo la Elastic License. Elasticsearch también ofrece capacidades de SIEM y aprendizaje automático como parte de sus ofertas comerciales.
Se mantienen bibliotecas de clientes oficiales para Java, C# (.NET), PHP, Python y Ruby, entre otros.
Elastic Stack
Elasticsearch se desarrolla junto con Logstash (un motor de recopilación de datos y análisis de registros), Kibana (una plataforma de análisis y visualización) y Beats (transportadores de datos ligeros). Los cuatro productos están diseñados para usarse juntos como Elastic Stack. La combinación se conocía anteriormente como ELK Stack, un acrónimo de "Elasticsearch, Logstash y Kibana".
Véase también
- Extracción de información
- Kibana
- Grafana
- Lista de bibliotecas de recuperación de información
- OpenSearch (software) - bifurcación de código abierto de Elasticsearch mantenida por AWS
- Graylog
Referencias
Enlaces externos
- Sitio web oficial