Tutoriel Elasticsearch pour les débutants

Tutoriel Elasticsearch pour les débutants
Dans cette leçon, nous verrons comment nous pouvons utiliser Elasticsearch et à quoi sert son utilisation. Nous examinerons à fond diverses terminologies impliquées et commencerons également à travailler avec elle.

Base de données Elasticsearch

Elasticsearch est l'une des bases de données NOSQL les plus populaires qui sont utilisées pour stocker et rechercher des données textuelles. Il est basé sur la technologie d'indexation de Lucene et permet la récupération de recherche en millisecondes en fonction des données indexées.

Basé sur le site Web d'Elasticsearch, voici la définition:

Elasticsearch est un moteur de recherche et d'analyse reposant distribué open source capable de résoudre un nombre croissant de cas d'utilisation.

C'étaient des mots de haut niveau sur Elasticsearch. Comprenons les concepts en détail ici.

  • Distribué: Elasticsearch divise les données qu'elle contient en plusieurs nœuds et utilise Maître d'esclave algorithme en interne
  • Reposant: Elasticsearch prend en charge les requêtes de base de données via les API REST. Cela signifie que nous pouvons utiliser des appels HTTP simples et utiliser des méthodes HTTP comme Get, Post, Put, Supprimer, etc. Pour accéder aux données.
  • Moteur de recherche et d'analyse: ES prend en charge des requêtes hautement analytiques à exécuter dans le système qui peut être constitué de requêtes agressées et de plusieurs types, comme des requêtes structurées, non structurées et géo.
  • Horizontalement à l'échec: Ce type de calibraide fait référence à l'ajout de machines à un cluster existant. Cela signifie que ES est capable d'accepter plus de nœuds dans son cluster et de ne fournir aucun temps d'arrêt pour les mises à niveau requises au système. Regardez l'image ci-dessous pour comprendre les concepts de mise à l'échelle:
  • Trafaille verticale et horizontale

Début avec Elasticsearch Base de données

Pour commencer à utiliser Elasticsearch, il doit être installé sur la machine. Pour ce faire, lisez Installer Elasticsearch sur Ubuntu.

Assurez-vous d'avoir une installation active Elasticsearch si vous souhaitez essayer des exemples que nous présentons plus tard dans la leçon.

Elasticsearch: Concepts et composants

Dans cette section, nous verrons quels composants et concepts se trouvent au cœur d'Elasticsearch. La compréhension de ces concepts est importante pour comprendre comment fonctionne l'ES:

  • Grappe: Un cluster est une collection de machines de serveur (nœuds) qui contient les données. Les données sont divisées entre plusieurs nœuds afin qu'il puisse être reproduit et un seul point de défaillance (SPOF) ne se produit pas avec le serveur ES. Le nom par défaut du cluster est Elasticsearch. Chaque nœud d'un cluster se connecte au cluster avec une URL et le nom du cluster afin qu'il soit important de garder ce nom distinct et clair.
  • Nœud: Une machine de nœud fait partie d'un serveur et est appelée une seule machine. Il stocke les données et fournit des capacités d'indexation et de recherche, ainsi que d'autres nœuds au cluster.

    En raison du concept de mise à l'échelle horizontale, nous pouvons pratiquement ajouter un nombre infini de nœuds dans un cluster ES pour lui donner beaucoup plus de capacités de force et d'indexation.

  • Indice: Un index est une collection de documents avec des caractéristiques quelque peu similaires. Un index est à peu près similaire à une base de données dans un environnement basé sur SQL.
  • Taper: Un type est utilisé pour séparer les données entre le même index. Par exemple, la base de données client / index peut avoir plusieurs types, comme l'utilisateur, le paiement_type, etc.

    Notez que les types sont dépréciés de ES V6.0.0. Lisez ici pourquoi cela a été fait.

  • Document: Un document est le niveau d'unité le plus bas qui représente les données. Imaginez-le comme un objet JSON qui contient vos données. Il est possible d'indexer autant de documents à l'intérieur d'un index.

Types de recherche dans Elasticsearch

Elasticsearch est connu pour ses capacités de recherche en temps quasi réel et les flexibilités qu'il fournit avec le type de données indexées et recherchées. Commençons à étudier comment utiliser la recherche avec différents types de données.

  • Recherche structurée: ce type de recherche est exécuté sur des données qui ont un format prédéfini comme les dates, les heures et les nombres. Avec le format prédéfini vient la flexibilité de l'exécution d'opérations communes comme la comparaison des valeurs dans une gamme de dates. de façon intéressante, Les données textuelles peuvent également être structurées. Cela peut se produire lorsqu'un champ a un nombre fixe de valeurs. Par exemple, le nom des bases de données peut être, mysql, mongodb, elasticsearch, neo4j, etc. Avec une recherche structurée, la réponse aux requêtes que nous exécutons est un oui ou un non.
  • Recherche de texte intégral: ce type de recherche dépend de deux facteurs importants, Pertinence et Analyse. Avec pertinence, nous déterminons dans quelle mesure certaines données correspondent à la requête en définissant un score aux documents résultants. Ce score est fourni par Es lui-même. Analyse fait référence à la rupture du texte en jetons normalisés pour créer un index inversé.
  • Recherche multitifiel. Les exigences ont grandi pour exécuter des requêtes qui s'étendent sur plusieurs champs et ont une liste de données triée notée par la base de données elle-même. De cette façon, les données peuvent être présentes à l'utilisateur final d'une manière beaucoup plus efficace.
  • Correspondance de la prolimité: les requêtes aujourd'hui sont bien plus que d'identifier si certaines données textuelles contient une autre chaîne ou non. Il s'agit d'établir la relation entre les données afin qu'elle puisse être notée et appariée au contexte dans lequel les données sont appariées. Par exemple:
    • Ball a frappé John
    • John a frappé le ballon
    • John a acheté une nouvelle balle qui a été frappée Jaen Garden

    Une requête de match trouvera les trois documents lors de la recherche Coup de bal. Une recherche de proximité peut nous dire jusqu'où ces deux mots apparaissent dans la même ligne ou le même paragraphe en raison de laquelle ils correspondaient.

  • Correspondance partielle: c'est souvent que nous devons exécuter des requêtes de match partiel. La correspondance partielle nous permet d'exécuter des requêtes qui correspondent partiellement. Pour visualiser cela, examinons une question similaire basée sur SQL:

    Requêtes SQL: correspondance partielle

    Où le nom comme "% John%"
    Et nom comme "% rouge%"
    Et nom comme "% jardin%"

    À certaines occasions, nous n'avons qu'à exécuter des requêtes de match partielle même lorsqu'elles peuvent être considérées comme des techniques brutes.

Intégration avec Kibana

Lorsqu'il s'agit d'un moteur d'analyse, nous devons généralement exécuter des requêtes d'analyse dans un domaine d'intelligence commerciale (BI). En ce qui concerne les analystes commerciaux ou les analystes de données, il ne serait pas juste de supposer que les gens connaissent un langage de programmation lorsqu'ils souhaitent visualiser les données présentes dans le cluster ES. Ce problème est résolu par Kibana.
Kibana offre tellement d'avantages à BI que les gens peuvent réellement visualiser les données avec un excellent tableau de bord personnalisable et voir les données de manière inétère. Regardons certains de ses avantages ici.

Graphiques interactifs

Au cœur de Kibana se trouvent des graphiques interactifs comme ceux-ci:

Kibana est soutenu avec différents types de graphiques comme les graphiques circulaires, les tours de soleil, les histogrammes et bien plus encore qui utilise les capacités d'agrégation complètes de l'ES.

Support de cartographie

Kibana prend également en charge la géo-agrégation complète qui nous permet de géo-mappez nos données. N'est-ce pas cool?!

Agrégations et filtres prédéfinis

Avec des agrégations et des filtres prédéfinis, il est possible de fragmenter, de déposer et d'exécuter des requêtes très optimisées dans le tableau de bord Kibana. En quelques clics, il est possible d'exécuter des requêtes agrégées et de présenter des résultats sous la forme de graphiques interactifs.

Distribution facile des tableaux de bord

Avec Kibana, il est également très facile de partager des tableaux de bord vers un public beaucoup plus large sans modifier le tableau de bord à l'aide du mode de tableau de bord uniquement. Nous pouvons facilement insérer des tableaux de bord dans notre wiki interne ou nos pages Web.

Images de fonctions prises dans la page de produit kibana.

Utilisation d'Elasticsearch

Pour voir les détails de l'instance et les informations de cluster, exécutez la commande suivante:

Maintenant, nous pouvons essayer d'insérer certaines données dans ES en utilisant la commande suivante:

Insérer des données

curl \
-X post 'http: // localhost: 9200 / linuxhint / bonjour / 1' \
-H 'Type de contenu: application / json' \
-D '"name": "Linuxhint"' \

Voici ce que nous récupérons avec cette commande:

Essayons d'obtenir les données maintenant:

Obtenir des données

curl -x get 'http: // localhost: 9200 / linuxhint / bonjour / 1'

Lorsque nous exécutons cette commande, nous obtenons la sortie suivante:

Conclusion

Dans cette leçon, nous avons examiné comment nous pouvons commencer à utiliser Elasticsearch qui est un excellent moteur d'analyse et fournit également un excellent support pour la recherche en texte libre en temps réel.