Comment fonctionne Elastic Search ?
ES : recherche élastique
Conditions préalables
Qu'est-ce qu'Elastic Search ?Dans notre article précédent , nous avons abordé les bases d'Elastic Search et ses différentes utilisations. Nous allons maintenant approfondir le fonctionnement réel d'Elastic Search. Comprendre le fonctionnement interne d'Elastic Search peut nous aider à mieux utiliser ses capacités et à résoudre les problèmes qui peuvent survenir. Examinons donc de plus près le fonctionnement d'Elastic Search.
Pour comprendre le fonctionnement d'ES, nous devons connaître certains concepts de base d'Elastic Search.
- Concepts logiques : comment ES organise les données
- Composants principaux
Concepts logiques :
Documents
Les documents sont l'unité d'information de base. Nous stockons nos données sous forme de documents qui peuvent être des objets JSON . Alors comment ces données s'organisent dans le cluster ? La réponse est les indices. Dans le monde des bases de données relationnelles, les documents peuvent être comparés à une ligne dans une table qui représente une entité donnée.
Les documents peuvent être du texte ou des données structurées encodées en JSON (les données peuvent être des choses comme des nombres, des chaînes et des dates)
Exemple : un document peut représenter un article d'encyclopédie ou des entrées de journal provenant d'un serveur Web
Indice
Les index ES sont des partitions logiques de documents et peuvent être comparés à une base de données dans le monde des bases de données relationnelles. Un index est l'entité de niveau le plus élevé que vous pouvez interroger dans ES. Par exemple : nous pouvons avoir un index pour les cas, les fournisseurs, les véhicules, les politiques.
Taper
Chaque index a un ou plusieurs types de mappage qui sont utilisés pour diviser les documents en un groupe logique. Il peut être comparé à une table dans le monde des bases de données relationnelles.
Index inversé
Il est conçu pour permettre des recherches en texte intégral très rapides. Un index inversé répertorie chaque mot unique qui apparaît dans n'importe quel document et identifie tous les documents dans lesquels chaque mot apparaît. Il s'agit d'une structure de données de type hashmap qui vous dirige d'un mot à un document.
que se passe-t-il si nous avons une faute de frappe dans notre requête de recherche, c'est-à-dire. que se passe-t-il si nous recherchons au Jefferieslieu de Jeffery?
Pour les cas comme ci-dessus, TextAnalyzer joue un rôle important. Dans le cas d'une recherche en texte intégral, les analyseurs sont responsables de la segmentation, de la normalisation, de la recherche de radicaux, de la suppression des mots vides des documents d'entrée, etc., afin que les résultats de la recherche donnent des résultats corrects.
POST _analyze
{
"tokenizer": "letter",
"text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}
[ The, QUICK, Brown, Foxes, jumped, over, the, lazy, dog, s, bone ]
Groupe
Dans ES, les données sont stockées dans des nœuds, il peut y avoir n nombre de nœuds dans une machine. Et chaque nœud est lié au cluster. Le cluster est donc un ensemble de nœuds
Nœud
Un nœud est un serveur unique qui fait partie d'un cluster. Un nœud stocke des données et participe aux capacités d'indexation et de recherche du cluster. Un nœud ES peut être configuré de différentes manières :
- Nœud maître : contrôle le cluster ES et est responsable de toutes les opérations à l'échelle du cluster, telles que la création/la suppression d'un index et l'ajout/la suppression de nœuds.
- Nœud de données : stocke les données et exécute des opérations liées aux données telles que la recherche et l'agrégation.
- Nœud client : transfère les demandes de cluster au nœud maître et les demandes liées aux données aux nœuds de données.
ES offre la possibilité de subdiviser l'index en plusieurs parties appelées fragments. Shard est comme un index. Pour l'évolutivité. Avec le sharding, vous pouvez stocker des milliards de documents dans un seul index.
Répliques
ES vous permet de faire une ou plusieurs copies des fragments de votre index qui sont appelés « fragments de réplique » ou simplement « répliques ». Fondamentalement, un fragment de réplique est une copie d'un fragment primaire. Chaque document d'un index appartient à une partition principale. Les répliques fournissent des copies redondantes de vos données pour vous protéger contre les pannes matérielles et augmenter la capacité de répondre aux demandes de lecture telles que la recherche ou la récupération d'un document.
Un réplica est une copie du fragment principal et a deux objectifs :
- Augmenter le basculement : il peut être promu au partage primaire en cas d'échec du primaire
- Augmentez les performances : les demandes d'obtention et de recherche peuvent être gérées par des fragments primaires ou des répliques
Les données brutes circulent dans ES à partir de diverses sources, y compris les journaux, les métriques système et les applications Web. L'ingestion de données est le processus par lequel ces données brutes sont analysées, normalisées et enrichies avant d'être indexées dans ES. Un index ES est une collection de documents liés les uns aux autres. ES stocke les données sous forme de documents JSON. Chaque document met en corrélation un ensemble de clés (noms de champs ou de propriétés) avec leurs valeurs correspondantes (chaînes, nombres, booléens, dates, tableaux de valeurs, géolocalisations ou autres types de données).
ES utilise une structure de données appelée index inversé, qui est conçue pour permettre des recherches en texte intégral très rapides. Un index inversé répertorie chaque mot unique qui apparaît dans n'importe quel document et identifie tous les documents dans lesquels chaque mot apparaît.
Pendant le processus d'indexation, ES stocke les documents et crée un index inversé pour rendre les données du document consultables en temps quasi réel. L'indexation est lancée avec l'API d'index, grâce à laquelle vous pouvez ajouter ou mettre à jour un document JSON dans un index spécifique.
Les références
Elasticsearch de bas en haut, partie 1
Référence Tokenizer | Guide de recherche élastique [8.5] | Élastique
Normalisateurs | Guide de recherche élastique [8.5] | Élastique
Enracinement | Guide de recherche élastique [8.5] | Élastique
J'espère que vous avez apprécié la lecture d'Elastic Search et son fonctionnement. Si vous avez trouvé cet article utile ou si vous avez d'autres questions, n'hésitez pas à me contacter via les commentaires.
Pour plus de mises à jour et d'informations sur les dernières tendances technologiques, assurez-vous de me suivre sur Twitter ou LinkedIn . Merci d'avoir lu, et j'ai hâte de communiquer avec vous sur les réseaux sociaux.
Twitter:https://twitter.com/geekfarmer_
Linkedin :https://www.linkedin.com/in/geekfarmer
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































