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 01/02/2023, 09:37] bcag2 [Voir aussi] ajout tuto ENI (payant !) |
elasticsearch [Le 07/02/2025, 11:16] (Version actuelle) 0ol |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Xenial console shell BROUILLON}} | + | {{tag>console shell BROUILLON}} |
---- | ---- | ||
- | ====== Elasticsearch ====== | + | ====== OpenSearch/Elasticsearch ====== |
**[[wpfr>Elasticsearch]]** est une base de données documentaire libre se basant sur le serveur Apache [[wpfr>Lucene]].\\ | **[[wpfr>Elasticsearch]]** est une base de données documentaire libre se basant sur le serveur Apache [[wpfr>Lucene]].\\ | ||
Les requêtes se font via le protocole [[wpfr>Hypertext_Transfer_Protocol|HTTP]] et l'interface [[wpfr>Representational_state_transfer|REST]].La requête PUT permet d'ajouter/modifier une entrée tandis que GET permet de la récupérer. L'échange de données se faisant via le format [[wpfr>JavaScript_Object_Notation|JSON]]. | Les requêtes se font via le protocole [[wpfr>Hypertext_Transfer_Protocol|HTTP]] et l'interface [[wpfr>Representational_state_transfer|REST]].La requête PUT permet d'ajouter/modifier une entrée tandis que GET permet de la récupérer. L'échange de données se faisant via le format [[wpfr>JavaScript_Object_Notation|JSON]]. | ||
+ | <note important>En 2021, le changement de licence d'Elasticsearch vers la licence non libre [[wpfr>Server_Side_Public_License|SSPL]] a entraîné la création du fork [[wp>OpenSearch_(software)|OpenSearch]], a priviligier désormais !\\ | ||
+ | Fin août 2024, marche arrière avec l'ajout d'une licence AGPL pour qu'Elasticsearch soit à nouveau open source ((src: https://www.elastic.co/fr/blog/elasticsearch-is-open-source-again et https://sgbd.developpez.com/actu/362095/Elasticsearch-est-a-nouveau-open-source-en-ajoutant-l-AGPL-conforme-a-l-OSI-comme-troisieme-option-apres-trois-ans-ou-les-produits-d-Elastic-ne-possedaient-qu-une-double-licence-non-open-source/)) | ||
+ | </note> | ||
Ce tutoriel a pour but de montrer comment installer basiquement le service Elasticsearch et réaliser des requêtes simples. | Ce tutoriel a pour but de montrer comment installer basiquement le service Elasticsearch et réaliser des requêtes simples. | ||
Les paramètres techniques détaillées et les concepts d'architecture ou de modèle documentaire ne seront pas abordés ici.\\ | Les paramètres techniques détaillées et les concepts d'architecture ou de modèle documentaire ne seront pas abordés ici.\\ | ||
Ligne 141: | Ligne 143: | ||
====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]],\\ | <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> | + | voire d'installer le logiciel [[https://insomnia.rest/|Insomnia]](OSS) ou [[https://docs.usebruno.com/introduction/what-is-bruno|Bruno]](également OSS), ce dernier offre l’avantage de permettre d'accéder à ses requêtes et donc de les versionner et/ou de les partager</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 157: | Ligne 159: | ||
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 === |