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 27/01/2023, 11:54] bcag2 [Opérations de base] lecture v8/v<7 |
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 140: | Ligne 142: | ||
====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) 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 155: | 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 === | ||
Ligne 670: | Ligne 674: | ||
* [[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]]// |