Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
elasticsearch [Le 11/09/2022, 12:14] moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
elasticsearch [Le 25/09/2023, 14:53] (Version actuelle) 92.174.107.9 Rangement ordre |
||
---|---|---|---|
Ligne 140: | Ligne 140: | ||
====Opérations de base==== | ====Opérations de base==== | ||
+ | <note tip>Les exemples ci-dessous utilisent la [[:tutoriel/console_commandes_de_base|commande]] //curl//, il est possible de l'agrémenter de la commande [[:json_query]],\\ | ||
+ | voire d'installer le logiciel [[https://insomnia.rest/|Insomnia]](OSS)</note> | ||
Dans un base de données, il existe 4 opérations de base. Elles sont synthétisées sous l'acronyme [[wpfr>CRUD|CRUD]] : | Dans un base de données, il existe 4 opérations de base. Elles sont synthétisées sous l'acronyme [[wpfr>CRUD|CRUD]] : | ||
- **C**reate : création d'une donnée | - **C**reate : création d'une donnée | ||
- | - **D**elete : supression d'une donnée | ||
- **R**ead : lecture d'une donnée | - **R**ead : lecture d'une donnée | ||
- **U**pdate : mise-à-jour d'une donnée | - **U**pdate : mise-à-jour d'une donnée | ||
+ | - **D**elete : supression d'une donnée | ||
De même, le protocole [[wpfr>Hypertext_Transfer_Protocol#M.C3.A9thodes|HTTP]] possède, entre autres, 4 méthodes : | De même, le protocole [[wpfr>Hypertext_Transfer_Protocol#M.C3.A9thodes|HTTP]] possède, entre autres, 4 méthodes : | ||
- | - **G**ET : accession à une ressource | ||
- **P**OST : publication d'une nouvelle ressource | - **P**OST : publication d'une nouvelle ressource | ||
+ | - **G**ET : accession à une ressource | ||
- **P**UT : mise-à-jour d'une ressource existante (création si elle n'existe pas) | - **P**UT : mise-à-jour d'une ressource existante (création si elle n'existe pas) | ||
- **D**ELETE : suppression d'une donnée | - **D**ELETE : suppression d'une donnée | ||
Ligne 155: | Ligne 157: | ||
Dans le cadre d'Elasticsearch, on peut donc faire le rapprochement : | Dans le cadre d'Elasticsearch, on peut donc faire le rapprochement : | ||
- Create ↔ POST | - Create ↔ POST | ||
- | - Delete ↔ DELETE | ||
- Read ↔ GET | - Read ↔ GET | ||
- Update ↔ PUT | - Update ↔ PUT | ||
+ | - Delete ↔ DELETE | ||
- | ===Indexation=== | + | === Indexation === |
- | <note tip>Elastic ne fait pas de différence fondamental entre "Create ↔ POST" et "Update ↔ PUT". Ces 2 opérations se confondent en une seule : l'indexation.</note> | + | <note tip>Elastic ne fait pas de différence fondamental entre "Create ↔ POST" et "Update ↔ PUT". Ces 2 opérations se confondent en une seule : l'indexation.\\ |
+ | Notez cependant qu'avec POST, l'identifiant est auto-généré, comme un aute-incrément de base de données, alors qu'aver PUT, vous pouvez spécifier la valeur de l'identifiant ((https://stackoverflow.com/a/56766777)), ce qui peut être intéressant lors de l'indexation d'une base relationnelle</note> | ||
+ | |||
+ | Pour ajouter un enregistrement dans Elasticsearch, on peut prendre comme exemple une méthode PUT : | ||
+ | À partir de la version 7, le //type// disparaît de l'url ((https://www.elastic.co/guide/en/elasticsearch/reference/7.17/removal-of-types.html)) | ||
+ | == avec ES version 8 == | ||
+ | <code bash>curl -XPUT "http://localhost:9200/movies/_doc/1" -d' | ||
+ | { | ||
+ | "movie": { | ||
+ | "title": "The Godfather", | ||
+ | "director": "Francis Ford Coppola", | ||
+ | "year": 1972 | ||
+ | } | ||
+ | }'</code> | ||
- | Pour ajouter un enregistrement dans Elasticsearch, on peut prendre comme exemple un méthode PUT : | + | == avec ES version < 7 == |
<code bash>curl -XPUT "http://localhost:9200/movies/movie/1" -d' | <code bash>curl -XPUT "http://localhost:9200/movies/movie/1" -d' | ||
{ | { | ||
Ligne 241: | Ligne 256: | ||
===Lecture sur un index=== | ===Lecture sur un index=== | ||
+ | <note important>Comme déjà préciser lors du PUT, à partir d'ES v7, il n'y a plus de //type//, les requêtes GET s'en trouvent aussi modifiées</note> | ||
Maintenant que nous avons créé et modifié des enregistrements, il est facilement possible de les récupérer via la méthode ''GET'' en utilisant uniquement les IDs. Par exemple, pour récupérer notre premier film : | Maintenant que nous avons créé et modifié des enregistrements, il est facilement possible de les récupérer via la méthode ''GET'' en utilisant uniquement les IDs. Par exemple, pour récupérer notre premier film : | ||
+ | == avec ES version 8 == | ||
+ | <code bash>curl -XGET "http://localhost:9200/movies/_doc/1"</code> | ||
+ | |||
+ | == avec ES version < 7 | ||
<code bash>curl -XGET "http://localhost:9200/movies/movie/1"</code> | <code bash>curl -XGET "http://localhost:9200/movies/movie/1"</code> | ||
On reçoit en réponse quelque chose de similaire à l'indexation, mais : | On reçoit en réponse quelque chose de similaire à l'indexation, mais : | ||
Ligne 652: | Ligne 672: | ||
* [[https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-elasticsearch-on-ubuntu-16-04|How to install Elasticsearch on Ubuntu 16.04]]<sup>(en)</sup> | * [[https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-elasticsearch-on-ubuntu-16-04|How to install Elasticsearch on Ubuntu 16.04]]<sup>(en)</sup> | ||
* [[https://hub.docker.com/_/elasticsearch]] image docker officielle | * [[https://hub.docker.com/_/elasticsearch]] image docker officielle | ||
- | * [[https://grafikart.fr/tutoriels/elastic-search-626]]<sup>(fr)</sup> tutoriel (2015), 43mn | + | * [[https://grafikart.fr/tutoriels/elastic-search-626]]<sup>(fr)</sup> tutoriel (2015… //obsolète//), 43mn |
+ | * [[https://www.editions-eni.fr/video/elasticsearch-indexez-vos-donnees-pour-une-recherche-efficace-vtelastic|tuto vidéo aux éditions ENI sur la v8]] (PAYANT) | ||
* [[http://joelabrahamsson.com/elasticsearch-101/|How to install Elasticsearch]]<sup>(en)</sup> | * [[http://joelabrahamsson.com/elasticsearch-101/|How to install Elasticsearch]]<sup>(en)</sup> | ||
---- | ---- | ||
- | //Contributeurs: demi-boulet// | + | //Contributeurs: demi-boulet, [[:utilisateurs/bcag2]]// |