Outils pour utilisateurs

Outils du site


dbadmin:elasticsearch:start

Ceci est une ancienne révision du document !


Elasticsearch

Elasticsearch est un moteur de recherche et d'analyse RESTful distribué et open source. Ces principales fonctionnalités sont:

  • Stockage de données fortement orienté texte (technologie nosql)
  • Recherche ultra-rapide, une très grande pertinence et des analyse.
  • Mise à l'échelle (scalabilité)
  • Interface RESTfull

C'est un moteur de recherche hautement paramétrable permettant de s'adapter aux spécificités et aux besoins en traitement des données de l'utilisateur.

Elasticsearch est utilisé avec d'autres outils pour former la stack Elastic (anciennement ELK):

  • Logstash permet d'alimenter elasticsearch. Il s'interface entre elasticsearch et les sources de données diverses qu'il formate et normalise.
  • Kibana est une webUI permettant concevoir des tableaux de bord, de consulter et d'exploiter les données.

On désigne alors cette architecture ELK 1)

Quelques exemples de domaines d'application d'Elasticsearch:

  • Ajouter une fonction de recherche aux applications et au sites web;
  • stockage et analyses des journaux, métriques et événements liés à la sécurité.
  • S'associer au machine Learning pour automatiquement analyser les données, modéliser des comportements déduits des masses de données.
  • Automatiser les workflows en entreprise en utilisant elasticsearch comme moteur de stockage.
  • Gérer, intégrer, analyser des informations spatiales en utilisant Elasticsearch comme SIG2).
  • Stocker et traiter des données génétiques en utilisant Elasticsearch comme outil de recherche bioinformatique.

Installation

Notions

Elasticsearch s'appuie sur Apache Lucene. Tous les mots d'un texte ont leur importance et on peut effectuer des recherches sur ces mots. Pour pouvoir évaluer la pertinence d'une réponse, la seule présence ou absence du mot ne suffit pas. Il est important d'appréhender certaines généralités sur le processus de scoring afin d'écrire précisément sa requête et analyser correctement les résultats. Le moteur va chercher à déterminer un poids pour chaque mot afin d'établir un score pour chaque réponse en tenant compte:

  • de la fréquence des mots dans le document (plus le mot est présent, plus le sujet est ciblé);
  • de la taille du document(si on parle de tout, l'importance de chaque mot diminue);
  • de la fréquence des mots dans l'ensemble des documents (un mots très fréquent est moins pertinent);

La recherche peut être enrichie en ciblant une partie de la structure du document: titre, métadonnées etc.

  • Un index accueillera un ensemble de documents ayant une même structure.
  • Le premier document importé déclare le schéma
  • Tous les documents importés par la suite dans cet index devront posséder le même schéma, c'est a dire respecter la exactement la meme structure (même clés, même types de données, même ordre).

Premiers pas

Afin de se familiariser avec elasticsearch, on utilise un client REST simple pour manipuler les documents.

Création d'un index:

http --json PUT localhost:9200/bibliography/_create/1 \
 author="Wiliam Gibson" \
 title="Neuromancien" \
 year:=1984 \
 category:='["SF","nouvelle"]'

Mettre a jour:

http --json PUT :9200/bibliography/_doc/1 \
author="Wiliam Gibson" \
title="Neuromancien" \
year="1984" \
category="SF"

Supprimer un document:

http delete :9200/bibliography/_doc/1

Paramétrages

Références

1)
Elasticsearch, Logstach, Kibana
2)
Système d'Information Géographique
dbadmin/elasticsearch/start.1614958140.txt.gz · Dernière modification : 2021/03/05 15:29 de 92.154.112.189