Fiche technique | |
---|---|
Plateforme : | Java |
Auteur : | Elastic NV |
Date de publication : | 2010 à actuellement |
Catégorie : | Moteur de recherche |
Site Web : | https://www.elastic.co/elasticsearch/ |
Introduction
L'Elasticsearch est un moteur de recherche et d'analyse distribué et RESTful capable de répondre à un nombre croissant de cas d'utilisation. En tant que coeur de la Suite Elastic, il entrepose de manière centralisée vos données pour une recherche ultra-rapide, une pertinence affinée et des analyses puissantes évoluant facilement. Elasticsearch est un moteur de recherche basé sur la bibliothèque Lucene.
Voici les principales caractéristiques d'Elasticsearch :
- Recherche en temps réel
- Indexation Rapide : Elasticsearch permet l'indexation quasi instantanée des documents, ce qui signifie que les nouveaux documents sont disponibles pour la recherche en quelques millisecondes après leur ajout.
- Recherche Plein Texte : Elasticsearch excelle dans la recherche de texte intégral, offrant des capacités de recherche avancées comme le scoring, le highlight, les suggestions de correction orthographique,...
- Architecture Distribuée
- Mise à l'échelle horizontale : Elasticsearch est conçu pour être distribué sur plusieurs nouds, ce qui permet une scalabilité horizontale. Les données sont réparties sur différents shards (segments) à travers plusieurs noeuds d'unité d'allocation.
- Redondance et Haute Disponibilité : Les données sont répliquées à travers plusieurs noeuds pour garantir la haute disponibilité en cas de panne. Chaque shard peut avoir plusieurs répliques.
- Support des Structures de Données Riches
- JSON : Elasticsearch utilise JSON pour entreposer les documents, ce qui le rend flexible et facile à intégrer avec diverses sources de données.
- Support des types de données complexes : Elasticsearch prend en charge une large gamme de types de données, y compris les chaînes, les nombres, les dates, les géo-coordonnées, et même les objets imbriqués.
- APIs RESTful
- Interfaces HTTP : Toutes les interactions avec Elasticsearch se font via des API RESTful, rendant l'intégration avec d'autres applications simple et flexible.
- CURL & Clients Officiels : Les requêtes peuvent être envoyées via CURL ou à l'aide de clients officiels disponibles dans divers langages de programmation, comme Java, .NET, Python,...
- Support des Agrégations
- Analyses et agrégations en temps réel : Elasticsearch permet d'effectuer des agrégations complexes sur les données, comme des sommes, des moyennes, des distributions, des histogrammes, et bien plus encore. Ces agrégations sont très performantes grâce à la nature distribuée du moteur.
- Facettes et Pivots : Les utilisateurs peuvent effectuer des facettes et des pivots pour analyser les données sous différents angles.
- Facilité d'Utilisation et d'Installation
- Installation Simple : Elasticsearch est facile à installer et à configurer. Un simple exécutable suffit pour démarrer un noeud Elasticsearch.
- Interfaces Utilisateurs (Kibana) : Kibana, l'interface utilisateur associée à Elasticsearch, permet de visualiser et de gérer facilement les données dans Elasticsearch.
- Résilience et Performance
- Tolérance aux pannes : Grâce à la réplication des données et à sa capacité à rééquilibrer automatiquement les shards, Elasticsearch est conçu pour continuer à fonctionner même si un ou plusieurs noeuds tombent en panne.
- Cache Intégré : Elasticsearch utilise des caches de manière agressive pour améliorer la vitesse des requêtes.
- Personnalisation et Extensibilité
- Analyseurs Personnalisés : Elasticsearch permet la création d'analyseurs de texte personnalisés pour ajuster comment les textes sont indexés et recherchés (par exemple, pour des langues spécifiques ou des cas d'utilisation spécifiques).
- Plugiciels et Extensions : Elasticsearch supporte de nombreux plugiciels pour étendre ses fonctionnalités, qu'il s'agisse d'intégrations avec d'autres systèmes, de nouveaux types de recherche, ou d'améliorations de performance.
- Gestion et surveillance
- Monitoring via APIs et Kibana : Elasticsearch expose des API pour surveiller l'état des unités d'allocation, la santé des noeuds, l'utilisation des ressources,... Kibana permet également de visualiser ces informations facilement.
- Alertes et avertissements : Avec des outils comme ElastAlert ou X-Pack, vous pouvez configurer des alertes basées sur les données indexées dans Elasticsearch.
- Sécurité
- Authentification et Autorisation : Elasticsearch peut être configuré pour utiliser des mécanismes d'authentification robustes, tels que LDAP, Active Directory, et OAuth.
- Chiffrement : Les communications avec Elasticsearch peuvent être sécurisées via SSL/TLS, et les données peuvent être chiffrées au repos.
- Ecosystème Elastic Stack (ELK)
- Logstash : Pour ingérer et transformer des données depuis diverses sources avant de les indexer dans Elasticsearch.
- Beats : Une famille de collecteurs légers qui envoient des données à Elasticsearch.
- Kibana : Pour la visualisation des données et la gestion des tableaux de bord interactifs.
- Support des données en temps réel et en séries temporelles
- Ingestion en temps réel : Elasticsearch est souvent utilisé pour des cas d'utilisation de type journal de bord en temps réel, où les données sont indexées et disponibles pour recherche presque immédiatement.
- Analyse des séries temporelles : Les capacités d'agrégation permettent d'analyser efficacement les données de séries temporelles, telles que les données de surveillance ou les métriques d'application.
Dernière mise à jour : Lundi, le 18 septembre 2023