English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Elasticsearch es un servidor de búsqueda basado en Apache Lucene. Fue desarrollado por Shay Banon y2010Año de publicación. Ahora es mantenido por Elasticsearch BV. Su versión más reciente es7.0.0.
Elasticsearch es un motor de búsqueda y análisis de texto distribuido y de código abierto en tiempo real. Puede acceder a él a través de la interfaz de servicio web RESTful y almacenar datos en documentos JSON (representación de objetos de JavaScript) sin patrón. Se construye en el lenguaje de programación Java, por lo que Elasticsearch puede ejecutarse en diferentes plataformas. Permite a los usuarios navegar a alta velocidad a través de grandes volúmenes de datos.
Las características comunes de Elasticsearch son las siguientes-
Elasticsearch puede expandirse hasta PB de datos estructurados y no estructurados.
Elasticsearch puede reemplazar almacenamientos de documentos como MongoDB y RavenDB.
Elasticsearch utiliza la desnormalización para mejorar el rendimiento de la búsqueda.
Elasticsearch es uno de los motores de búsqueda empresariales más populares, utilizado actualmente por muchas organizaciones grandes como Wikipedia, The Guardian, StackOverflow, GitHub y otros.
Elasticsearch es de código abierto y se puede usar bajo la versión de licencia Apache.2usando la versión 2.0.
Los conceptos clave de Elasticsearch son los siguientes-
Se refiere a una única instancia de ejecución de Elasticsearch. Un solo servidor físico y virtual puede albergar múltiples nodos, dependiendo de su capacidad de recursos físicos (como RAM, almacenamiento y capacidad de procesamiento).
Es una colección de uno o más nodos. El clúster proporciona una función de índice y búsqueda colectiva para todos los datos a través de todos los nodos.
Es una colección de documentos de diferentes tipos y sus propiedades. El índice también utiliza el concepto de fragmentación para mejorar el rendimiento. Por ejemplo, un conjunto de documentos puede contener datos de una aplicación de red social.
Es una colección de campos definidos de una manera específica en formato JSON. Cada documento pertenece a un tipo y se encuentra dentro del índice. Cada documento está asociado con un identificador único llamado UID.
Los índices se dividen en fragmentos en la dirección horizontal. Esto significa que cada fragmento contiene todas las propiedades de los documentos, pero el número de objetos JSON que contiene es menor que el índice. La separación horizontal hace que el fragmento sea un nodo independiente, que se puede almacenar en cualquier nodo. El fragmento principal es la parte horizontal original del índice, y luego se copian estos fragmentos principales a los fragmentos de copia.
Elasticsearch permite a los usuarios crear copias de índices y fragmentos. La copia no solo mejora la disponibilidad de los datos en caso de fallo, sino que también mejora el rendimiento de la búsqueda mediante operaciones de búsqueda paralelas en estas copias.
Elasticsearch se desarrolla en Java, lo que lo hace compatible prácticamente en todas las plataformas.
Elasticsearch es en tiempo real, en otras palabras, los documentos agregados un segundo después pueden ser searched en este motor.
Elasticsearch es distribuido, por lo que se puede expandir y integrar fácilmente en cualquier gran organización.
Crear copias de seguridad completas utilizando el concepto de gateway es muy simple, este concepto es muy común en Elasticsearch.
En comparación con Apache Solr, gestionar múltiples inquilinos en Elasticsearch es muy fácil.
Elasticsearch utiliza objetos JSON como respuesta, lo que permite usar una gran cantidad de diferentes lenguajes de programación para llamar al servidor de Elasticsearch.
Además de los tipos de documentos que no admiten la renderización de texto, Elasticsearch admite prácticamente todos los tipos de documentos.
En el procesamiento de solicitudes y respuestas de datos, Elasticsearch no ofrece soporte multilingüe (solo disponible en JSON), a diferencia de Apache Solr, que puede usar formatos CSV, XML y JSON.
A veces, Elasticsearch puede tener problemas de split-brain.
En Elasticsearch, un índice es similar a una tabla en un RDBMS (sistema de gestión de bases de datos relacionales). Cada tabla es una colección de filas, al igual que cada índice es una colección de documentos en Elasticsearch.
La siguiente tabla realiza una comparación directa de estos términos-
Elasticsearch | sistema de gestión de bases de datos relacionales (RDBMS) |
---|---|
conjunto | Base de datos |
fragmento | fragmento |
índice | tabla |
campo | columna |
documento | línea |