Partage de technologie

[Elasticsearch] Explication détaillée de l'index inversé Elasticsearch

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

📑引言

Elasticsearch est un moteur de recherche distribué basé sur Lucene, largement utilisé dans des domaines tels que la recherche en texte intégral, l'analyse de journaux et l'analyse de données en temps réel. Son principal avantage réside dans ses puissantes performances de recherche, et l’un des fondements de ces performances est l’index inversé. Cet article présentera en détail l'index inversé dans Elasticsearch pour aider les lecteurs à comprendre en profondeur ses principes, sa structure et ses applications.

image.png

1. Introduction à l'index inversé

L'index inversé est la structure de données de base du moteur de recherche en texte intégral. Sa fonction principale est d'extraire des mots-clés des documents et d'établir une relation de mappage entre les mots-clés et les documents. Cette structure est à l'opposé de l'index direct traditionnel (c'est-à-dire le mappage de documents avec des mots-clés), c'est pourquoi on l'appelle un index inversé.
Dans l'index inversé, chaque mot-clé est associé à une liste de documents contenant ce mot-clé, ce qui permet aux opérations de recherche de localiser rapidement des documents contenant des mots-clés spécifiques, améliorant ainsi considérablement l'efficacité des requêtes.

2. Structure de base de l'index inversé

La structure de base de l'index inversé comprend les parties suivantes :

  1. Dictionnaire: contient tous les mots-clés qui apparaissent dans l'ensemble de documents.
  2. Liste inversée: Pour chaque mot-clé, enregistrez la liste d'ID de document contenant le mot-clé et ses informations d'emplacement dans le document.

Donnez un exemple simple :
Disons que nous avons les trois documents suivants :

  • Document 1 :"Elasticsearch is a powerful search engine"
  • Document 2 :"Elasticsearch uses inverted index"
  • Document 3 :"Search engines use indexes"

Les étapes pour créer un index inversé sont les suivantes :

  1. Tokenisation : divisez le document en mots et effectuez un traitement de normalisation (comme la conversion en minuscules, la suppression des mots vides, etc.).
  2. Créez un dictionnaire : extrayez des mots uniques de tous les documents.
  3. Créez une liste inversée : enregistrez où chaque mot apparaît dans chaque document.

Le résultat est le suivant :