Les développeurs rencontrent souvent des difficultés à gérer efficacement de grands ensembles de données dans ElasticSearch.
Cela peut entraîner une récupération de données lente, une augmentation des erreurs et de la frustration lors de la mise à jour ou de la suppression d’enregistrements.
En comprenant et en utilisant les puissants outils de développement d’ElasticSearch, vous pouvez optimiser l’indexation, la mise à jour et la gestion des documents de manière efficace.
Devenez expert dans l'utilisation d'Elastic pour analyser les données !
Interaction avec Elasticsearch Dev Tools
Pour interagir directement avec Elasticsearch, commencez par cliquer sur les trois lignes (menu), puis faites défiler vers le bas jusqu’à « Dev Tools », comme illustré dans les deux captures suivantes.
Vous allez scroller vers le bas pour trouver Dev Tools :
Pour indexer un document dans Elasticsearch, nous allons utiliser une requête de base. Cette requête peut être exécutée soit via la console de Dev Tools d’Elasticsearch, soit en utilisant un outil comme Postman . Dans cet exemple, nous allons effectuer l’opération dans la console de Dev Tools.
La requête suivante permet de créer un document dans l’index catalog , avec un identifiant spécifique (ici 1), et plusieurs champs décrivant le document :
PUT /catalog/_doc/1
{
« sku »: « EE000001 »,
« title »: « Elastic bases »,
« description »: « e-book elastic »,
« author »: « Ghali ALPHORM »,
« REF »: « 1998755 »,
« price »: 26
}
Indexing Documents: Requête Explication
- PUT est utilisé pour ajouter ou remplacer un document avec l’ID spécifié (1 dans ce cas).
- L’index cible est catalog, et le type de document est _doc.
- Le corps de la requête contient les champs et leurs valeurs associés à ce document, tels que sku, title, description, author, REF, et price.
Elasticsearch Commands: Réponse de la Requête
Document Retrieval: Détails de la Réponse
- _index :Il indique le nom de l’index (catalog) où le document a été stocké.
- _id :C’est l’identifiant unique du document (ici 1).
- _version :Il indique le numéro de version du document, qui augmente à chaque modification.
- result :Le résultat de l’opération. Ici, il indique que le document a étécréé.
- _shards :Cette section montre la répartition du document sur les shards (partitions) d’Elasticsearch.totalreprésente le nombre total de shards.successfulmontre combien de shards ont réussi à indexer le document (ici, 1 sur 2).failedindique s’il y a eu des échecs pendant l’indexation (ici, aucun).
- _seq_noet_primary_term :Ce sont des métadonnées utilisées pour assurer la cohérence et la gestion des versions des documents dans Elasticsearch.
Grâce à cette requête, nous avons réussi à indexer un document dans Elasticsearch avec succès. Vous pouvez ensuite effectuer des recherches ou des mises à jour sur ce document via d’autres requêtes.
Récupération d'un document
La première étape consiste à récupérer un document à l’aide de la commande suivante :
GET /catalog/_doc/1
Cela permet de vérifier que le document a bien été indexé et contient les bonnes informations. La réponse à cette commande ressemblera à la suivante :
Structure de l'Index: Récupération
Pour obtenir la structure (mapping) de l’index catalog, vous pouvez exécuter la commande suivante :
GET /catalog/_mapping
Cette requête vous donnera des informations sur les types de champs que contient l’index, leur structure, et la manière dont Elasticsearch stocke ces données.
Mise à jour d’un document :
Pour mettre à jour un document existant, nous allons utiliser la méthode PUT . Cela permet de remplacer le contenu du document avec un nouveau contenu. La commande suivante permet de modifier le document ayant l’ID 1 :
PUT /catalog/_doc/1
{
"sku": "EE000002002",
"title": "aLPHORM et Elastic bases Elastic bases",
"description": "e-book elastic",
"author": "Ghali ALPHORM",
"REF": "1998755",
"price": 26
}
Utilisation de POST et gestion des mises à jour partielles :
La méthode POST est utile pour créer ou mettre à jour partiellement un document, sans avoir à réécrire l’intégralité de celui-ci. Voici une commande qui met à jour uniquement certains champs, comme le champ price :
L’utilisation de la méthode POST permet de créer ou de mettre à jour partiellement un document. Vous pouvez, par exemple, modifier uniquement certains champs à l’aide de la commande suivante :
POST /catalog/_update/1
Cela vous permet de mettre à jour certains champs sans réécrire l’intégralité du document :
PUT /catalog/_doc/1
{
"doc":{
"price": "100"
}
}
Suppression d’un document :
Pour supprimer un document du catalogue, vous pouvez utiliser la commande DELETE . Par exemple, pour supprimer le document avec l’ID 1, exécutez la commande suivante :
DELETE /catalog/_doc/1
Identifiant du Document | Document |
---|---|
1 | { « sku »: « EE000001 », « title »: « Elastic bases », « description »: « e-book elastic », « author »: « Ghali ALPHORM », « REF »: « 1998755 », « price »: 26 } |
2 | { « sku »: « EE000002 », « title »: « ALPHORM et Elastic bases », « description »: « e-book elastic avec ALPHORM », « author »: « Ghali ALPHORM », « REF »: « 1998755 », « price »: 26 } |
… | … |
Term | Frequency | Documents (Postings) |
---|---|---|
Elastic | 2 | [1, 2] |
ALPHORM | 2 | [2] |
e-book | 2 | [1, 2] |
price | 2 | [1, 2] |
author | 2 | [1, 2] |
- Term :Le mot clé ou terme qui apparaît dans les documents indexés.
- Frequency :Le nombre d’occurrences du terme dans l’ensemble des documents.
- Documents (Postings) :Les identifiants des documents où le terme est présent.
Ce tableau illustre comment Elasticsearch gère les termes en interne, en associant chaque terme à sa fréquence et aux documents dans lesquels il apparaît.
Maintenant on va :
PUT /formation
{
"settings": {
"index": {
"number_of_shards": 5,
"number_of_replicas": 2
}
},
"mappings": {
"properties": {
"f1": {
"type": "text"
},
"f2": {
"type": "keyword"
}
}
}
}
Commande | Description | Exemple |
---|---|---|
PUT | Crée un index ou remplace un document existant. | PUT /mon_index{ « settings »: { « index »: { « number_of_shards »: 3 } }, « mappings »: { « properties »: { « champ1 »: { « type »: « text » } } }} |
POST | Insère un nouveau document ou met à jour partiellement. | POST /mon_index/_doc{ « champ1 »: « Valeur 1 », « champ2 »: « Valeur 2 » } |
GET | Récupère un document ou un index existant. | GET /mon_index/_doc/1 |
DELETE | Supprime un document ou un index. | DELETE /mon_index/_doc/1 |
POST _update | Met à jour partiellement un document existant. | POST /mon_index/_update/1{ « doc »: { « champ1 »: « Nouvelle Valeur » } } |
GET _mapping | Récupère la structure de mappage d’un index. | GET /mon_index/_mapping |
PUT /mon_index
{ « settings »: { « index »: { « number_of_shards »: 3 } }, « mappings »: { « properties »: { « champ1 »: { « type »: « text » } } }}
POST /mon_index/_doc
{ « champ1 »: « Valeur 1 », « champ2 »: « Valeur 2 » }
POST /mon_index/_update/1
{ « doc »: { « champ1 »: « Nouvelle Valeur » } }
Notes
- PUT :Utilisé pour créer ou remplacer un document ou un index.
- POST :Utilisé pour ajouter des documents ou mettre à jour des champs spécifiques.
- GET :Utilisé pour récupérer des informations.
- DELETE :Utilisé pour supprimer des documents ou des indices.
- POST _update :Pour mettre à jour un document sans réécrire l’intégralité.
- GET _mapping :Pour comprendre la structure des données dans un index.
Ce tableau devrait vous aider à mieux comprendre et à vous rappeler des commandes clés d’Elasticsearch !
GET Request: Elasticsearch avec Postman
Lors de notre test effectué via Postman, nous avons exécuté une requête GET sur l’URL
https://192.168.95.132:9200/formation/_search
. Cette requête permet d’interroger à distance l’index nommé formation pour récupérer des documents.
API REST Elasticsearch: Résumé
Cette section présente les commandes essentielles de l’API REST d’Elasticsearch pour l’interaction avec les données.
- Indexation d’un Document :Utilisez la méthodePUTpour créer ou remplacer un document dans un index. Par exemple, pour indexer un document dans catalog, une requête est faite avec un identifiant spécifique et plusieurs champs.
- Récupération d’un Document :La méthodeGETpermet de récupérer un document à l’aide de son ID, ce qui permet de vérifier son contenu.
- Mappage de l’Index :La commandeGET _mappingfournit la structure des champs d’un index, révélant comment Elasticsearch stocke les données.
- Mise à Jour d’un Document :Pour modifier un document existant, utilisezPUTavec le nouvel ensemble de données. La mise à jour partielle d’un document peut être effectuée avecPOSTet la commande_update, permettant de changer certains champs sans réécrire l’intégralité du document.
- Suppression d’un Document :La méthodeDELETEpermet de retirer un document d’un index.
- Tableaux Récapitulatifs :Des tableaux montrent les identifiants et le contenu des documents ainsi que la fréquence des termes dans les documents indexés.
- Commandes Elasticsearch :Un tableau récapitule les commandes (PUT, POST, GET, DELETE) avec des descriptions et des exemples d’utilisation pour faciliter la compréhension.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment indexer un document dans ElasticSearch ?
Pour indexer un document dans ElasticSearch, vous pouvez utiliser la méthode PUT avec un nom d’index spécifique et un ID de document. Par exemple, pour créer un document dans l’index « catalog » avec un ID de 1, vous exécuteriez une requête PUT contenant les détails du document, tels que le SKU, le titre et l’auteur, inclus dans le corps de la requête. Ce processus vous permet d’ajouter ou de remplacer un document dans l’index spécifié, garantissant que vos données sont stockées avec précision et facilement accessibles.
Comment mettre à jour un document dans ElasticSearch ?
La mise à jour d’un document dans ElasticSearch peut être effectuée en utilisant la méthode PUT pour des remplacements complets ou la méthode POST _update pour des mises à jour partielles. Pour une mise à jour complète, vous remplacez le contenu du document par de nouvelles données. En revanche, les mises à jour partielles permettent de modifier des champs spécifiques sans altérer l’ensemble du document. Par exemple, pour modifier uniquement le champ « price » d’un document, utilisez la commande POST _update en spécifiant la nouvelle valeur pour ce champ. Cette flexibilité permet de maintenir l’intégrité des données tout en autorisant des changements ciblés.
Comment récupérer un document avec ElasticSearch ?
Pour récupérer un document dans ElasticSearch, on utilise la méthode GET. Cette méthode nécessite le nom de l’index et l’ID du document pour spécifier le document à récupérer. Par exemple, exécuter GET /catalog/_doc/1 permettra de récupérer le document avec l’ID 1 de l’index « catalog ». La réponse inclura l’état actuel du document, vous permettant de vérifier son contenu et de vous assurer qu’il correspond à vos attentes. Cette fonctionnalité est cruciale pour valider les données avant d’effectuer des mises à jour ou un traitement supplémentaire.
Quel est l’objectif des outils de développement ElasticSearch ?
Les outils de développement ElasticSearch, accessibles depuis l’interface de Kibana, fournissent une console pour exécuter des requêtes et gérer les indices ElasticSearch. Ils facilitent les tests et le débogage en permettant aux utilisateurs de lancer des requêtes directement dans le navigateur. Vous pouvez réaliser des opérations telles que l’indexation, la mise à jour et la récupération de documents, ainsi que surveiller les réponses. Les outils de développement offrent un environnement intuitif pour interagir avec ElasticSearch, ce qui permet de tester et d’affiner des commandes sans impacter les environnements de production.
Comment ElasticSearch gère-t-il la suppression de documents ?
La suppression de documents dans ElasticSearch se fait via la méthode DELETE. Cette opération nécessite de spécifier l’index et l’ID du document ciblé. Par exemple, DELETE /catalog/_doc/1 supprimera le document avec l’ID 1 de l’index « catalog ». La suppression est permanente, ce qui signifie que le document ne sera plus accessible ni récupérable. Cette méthode est essentielle pour maintenir l’hygiène des données, vous permettant de supprimer efficacement les entrées obsolètes ou erronées de vos indices.
Conclusion
À mesure que vous maîtrisez les commandes et les interactions avec ElasticSearch, réfléchissez à la manière d’intégrer ces compétences dans des projets de gestion de données à grande échelle. Quelles nouvelles possibilités pouvez-vous explorer grâce aux capacités robustes d’ElasticSearch ?