Elasticsearch : de l'importance du mapping

En avril, je donnais un tools-in-action « Elasticsearch: de l’importance du mapping » à Devoxx.

Le but de cette présentation était de montrer que, du point de vue du développeur, la définition du mapping en général, et des analyseurs est très important pour le bon fonctionnement et la qualité de la recherche. Dans des cas extrêmes, il est même possible de changer les fonctionnalités obtenues par un simple réglage.

Gentiment, quelques spectateurs intéressés m’ont demandé de mettre en ligne mon diaporama.
Le soucis, c’est que le diaporama, se limitait à la présentation de ma personne et à la définition du mapping. Tout le reste du tools-in-action était constitué de l’exécution de commandes REST vers un Elasticsearch. Mettre en ligne le diaporama ne constituait donc aucun intérêt.

J’ai donc eu l’idée, et pris le temps de réaliser une transposition. Plutôt que de vous fournir un diaporama tout fait, je vous propose de le revivre par vous même sous la forme d’un exercice à télécharger.

Une fois décompressé, vous trouverez trois fichiers dans le dossier elasticsearch-mapping.

  • mapping.sense est un fichier contenant l’exercice. Au format sense, il contient des explications et des instructions sous forme de commentaires et des commandes REST à exécuter.
  • Dockerfile permet de construire un instance docker contenant Elasticsearch avec Marvel. Je vous le distribue sous forme de fichier à builder et non sous forme d’image Docker pour des raisons de licence : Marvel est une extension payante d’Elasticsearch. Vous pouvez cependant l’utiliser gratuitement pour un test ou le développement. Elle inclut Sense, un outil de requête pratique.
  • load-normes est un script shell qui utilise des commandes curl pour charger des données. Il sera exécuté à la demande par l’exercice.

Démarrer l’exercice

  1. Télécharger l’exercice depuis le dépôt Github.
  2. Décompresser l’archive et aller dans le dossier elasticsearch-mapping.
  3. Installer les pré-requis. - docker - boot2docker selon votre système, dans ce cas, il faudra remplacer les références à localhost par l’adresse du serveur virtuel.
  • curl
  1. Construire l’image docker : - docker build -t es-mapping .
  2. Démarrer le docker : - docker run --rm -p 9200:9200 es-mapping
  3. Ouvrir votre navigateur sur la page http://localhost:9200/_plugin/marvel
  4. Si la bannière d’accueil s’affiche, valider le bouton « Continue Free Trial »
  5. Cliquer sur le menu « Dashbord » en haut à droite.
  6. Choisir l’entrée « Sense »
  7. Si une popup d’explication s’affiche, cliquer sur « Get to work »
  8. Coller le contenu du fichier mapping.sense dans l’éditeur de requête à gauche.
  9. C’est parti…

Pour exécuter une commande, cliquer sur la flèche verte qui s’affiche à sa droite lorsque le curseur est sur la commande ou appuyer sur les touches Ctrl-Entrée (ou ⌘-⏎)

N’hésitez pas à donner plus de place au texte en déplaçant la séparation.

Les moins motivés pourront se contenter de voir le tools-in-action sur Parleys.

Mise-à-jour: Les fichiers de l’exercice sont maintenant hébergés par Github.