Skip to main content
Depuis que le Big Data a fait son apparition et qu’il est devenu incontournable dans tous les domaines, la valorisation des données récoltées est primordiale. Pour valoriser chaque donnée acquise, il est important de bien les interroger. De ce fait, employer un moteur de recherche est le moyen le plus efficace pour obtenir un résultat approprié et satisfaisant par rapport aux requêtes envoyé à la base de données.

Au-delà du fait d’apporter une solution pour les recherches de données, Elasticsearch offre à ses utilisateurs une solution beaucoup plus efficace pour l’exploitation de ses données. Cette solution est adaptable à tout type de projet exploitant le Big Data. Voyons ce qu’Elasticsearch propose.

Elasticsearch : définition

Tout d’abord, nous devons savoir ce que c’est. Quelle est cette solution et comment est-elle devenue la plus populaire dans sa catégorie ?

Elasticsearch est l’œuvre de Shay Banon, créé en 2004, mais sorti en 2010. Ce logiciel de la société Elastic qui est basé sur Apache Lucene, est ouvert et gratuit sous License Elastic et est également disponible sous Server Side Public Licence ainsi que sur le cloud sous forme de SaaS.

Elasticsearch est un logiciel utilisé pour l’indexation, la recherche et l’analyse de données. Il permet à son utilisateur d’interroger efficacement une base de données à partir d’un API REST, ce qui le rend maniable peu importe le langage de programmation utilisé par ce dernier. Le format JSON des données stockées dans Elasticsearch appuie le fait qu’il peut être intégré à n’importe quelle application nécessitant des recherches personnalisées. Cela permettra de ne pas s’appuyer sur les moteurs de recherche standard tels que Google ou Bing sur des recherches plus poussées.

En plus des documents JSON qu’il traite, Elasticsearch prend en charge plusieurs autres formats de document texte, tout comme les listes et les documents imbriqués.

Cette base de données NoSQL, déployée sur plusieurs nœuds d’un cluster, offre les avantages d’une architecture distribuée en matière de temps de traitement de chaque requête. Ce qui veut dire que l’on peut interroger chaque document en temps réel, qu’il soit volumineux ou non.

Elasticsearch : principes fondamentaux

Ici, nous allons parler essentiellement du fonctionnement d’Elasticsearch. Sur quels principes se basent les recherches faites à partir d’une base de données NoSQL d’Elasticsearch ?

L’indexation

Dans Elasticsearch, un index fait référence à un ensemble de documents sous le format JSON stocké dans la base. En réalité, il s’agit d’un ensemble d’indices, c’est-à-dire qu’il y a plusieurs documents JSON, et chaque document correspond à un indice.

Il faut noter que chaque index possède un format ou une structure spécifique sur lequel tous les documents présents dans l’index doivent se conformer. Ce qui veut dire que les documents sont regroupés selon leurs formats pour former un index.

Structure distribuée

Elasticsearch peut être installé sur plusieurs nœuds ou machines différentes. Ce qui forme les instances d’Elasticsearch que l’on peut lancer en même temps. Chaque document inséré sur Elasticsearch est divisé en shards (partition) de même taille. Ensuite, ces shards seront dupliqués sur plusieurs nœuds d’un cluster. Ce procédé permet aux données de posséder une haute disponibilité et assure que le traitement des données soit toujours en cours.

Pour fonctionner, chaque partition embarque un moteur Apache Lucene qui va s’occuper de la recherche de contenu par index inversé. Donc, Elasticsearch est composé de plusieurs instances d’Apache Lucene.

REST API d’Elasticsearch

Pour interroger les données, Elasticsearch fournit des requêtes via un API REST. Celui-ci sera exécuté sur toutes les répliques et toutes les partitions d’un index. Comme chaque fragment de données est de la même taille, ou du moins d’une taille plus ou moins équivalente, l’exécution des requêtes de l’API REST se fait équitablement entre chaque nœud. Ce qui équilibre la vitesse de calcul.

Elasticsearch : utilisation

Pour utiliser correctement Elasticsearch, il faut passer par différentes étapes. Quelques notions sont également primordiales pour que l’on puisse manier cet outil. Vous devez maitriser JSON, le système sur lequel vous voulez l’installer ainsi que d’autres outils.

Installation d’Elasticsearch

Avant toute chose, il va falloir installer Elasticsearch sur les instances que vous souhaitez mettre en place. Pour cela, il vous suffit de télécharger gratuitement les fichiers sur le site officiel d’Elastic. Ces fichiers sont regroupés dans un fichier ZIP ou tar.gz que vous allez extraire. Pour effectuer l’installation, des lignes de commande sont à exécuter, mais il existe également un installateur pour Windows qui n’est toutefois pas encore finalisé.

Il faut noter que pour que l’installation soit réussie, vous devez disposer de Java 8 sur vos machines.

Configuration d’Elasticsearch

Une fois l’installation terminée, vous pouvez par la suite configurer Elasticsearch selon votre convenance. Par exemple, vous pouvez changer les noms des nœuds, les hosts, les ports que vous souhaitez utiliser, etc.

Exécution d’Elasticsearch

Un démarrage manuel est nécessaire une fois que vous avez réussi l’installation et la configuration d’Elasticsearch. Pour cela, une ligne de commande est à exécuter. Une fois cela fait, vous pouvez accéder à l’interface du logiciel à partir d’un navigateur en spécifiant l’adresse du serveur. Vous pouvez également utiliser certains outils tels que Postman ou cURL pour interagir avec Elasticsearch. Toutefois, Elastic recommande l’utilisation de Kibana pour effectuer cette interaction. Si tout se passe bien, une réponse sous forme de JSON vous sera renvoyée.

Ajout d’index

Toute communication avec Elasticsearch utilise un API REST. Donc, ajouter un index doit également passer par cela. Pour se faire, il faut utiliser une méthode POST ou PUT. Utilisez POST si vous souhaitez qu’Elasticsearch s’occupe de la génération de l’id de l’index et PUT si vous voulez le spécifier. Une fois créé, le document sera stocké sous forme d’objet JSON. Il n’est pas nécessaire de spécifier la structure de donnée, car Elasticsearch s’en charge.

Suppression

La suppression de données, d’index (un, plusieurs ou tous) ou encore de document sur Elasticsearch est très simple. Pour cela, une méthode DELETE est à exécuter. Vous devez ensuite préciser les paramètres que vous souhaitez supprimer.

Analyse et recherche d’index

Une fois que vous avez toutes les données stockées sur Elasticsearch, vous pouvez commencer l’analyse et la recherche dans vos bases de données pour façonner votre moteur de recherche personnalisé.

Plusieurs types de recherche peuvent être soumis sous forme de requête. Il y a, par exemple, les requêtes pleines texte, les requêtes scriptées, les requêtes géographiques, etc.

Pour exécuter ces requêtes, il vous suffit d’utiliser la méthode HTTP GET suivie des spécifications requises pour que votre recherche soit ciblée.