publié le 13 sept. 2021
Index Inversé

Définition SEO de Index Inversé

Un index inversé est une structure de données qui permet à un moteur de recherche de répertorier le contenu de son index classique de façon à pouvoir identifier rapidement lors d'une requête les pages web sur lesquelles les mots utilisés se trouvent. Une correspondance est donc faite entre chaque expression ou mot et sa position dans chaque document de l'index qui le contient. Cette stratégie d'indexation permet un gain de temps considérable.

Définition de l'Index inversé

L'index inversé fait partie des ressources qui permettent aux moteurs de recherche de fonctionner efficacement. Il est indispensable pour un traitement rapide des données lors d'une recherche plein texte.

Qu'est-ce que l'Index inversé ?

En informatique, on parle d'index inversé lorsqu'un contenu est répertorié ou classé de manière à ce que l'on puisse obtenir pour chaque mot trouvé dans un ensemble de pages la liste complète des documents où il est présent. Il est basé sur le même principe que l'index terminologique qu'on trouve dans les ouvrages scientifiques et littéraires, en complément de la table des matières.

La recherche d'un mot dans un long document prend du temps, même lorsque cette tâche est effectuée par un programme informatique. Imaginez à présent le temps que cela prendrait pour un moteur de recherche d'identifier des mots ou des expressions parmi plusieurs milliards de pages web. La lenteur du processus affecterait l'expérience utilisateur. C'est pour éviter cela que l'index inversé a été créé. Cette structure de données permet une recherche rapide de l'information, quelle que soit la fréquence du mot ou de l'expression recherchée dans la base de données. Google, Bing, Yahoo! et tous les principaux moteurs de recherche possèdent un index inversé.

Selon le niveau de précision souhaité, un index inversé peut prendre plusieurs formes. La forme la plus simple est celle qui fournit pour chaque mot d'un corpus la liste des documents dans lesquels il est présent au moins une fois. D'autres formes d'Index donnent en plus de cela la position du mot ou de l'expression en question dans les documents où il est présent. Les index inversés les plus avancés prennent également en compte la casse des mots et leur nombre (singulier ou pluriel).

Tout comme un index classique, un index inversé contient beaucoup d'informations. Théoriquement, il a donc besoin d'un espace disque très important qui peut parfois être plus élevé que celui occupé par le contenu indexé lui-même. Mais dans la pratique, avec une technologie similaire à celle du moteur Apache Lucene (entièrement codé en Java), il est possible d'avoir un index significativement plus petit en termes de volume que la base de données à laquelle IL est lié. Dans tous les cas, il faut dédier à l'index inversé au moins 10 % de l'espace requis pour stocker le contenu lui-même.

Index inversé : exemple

Pour illustrer le concept d'index inversé, prenons l'exemple d'un corpus composé de deux documents (pages web) X et Y.

Le document X a pour contenu : « Le soleil est ardent »

Le document Y a pour contenu « Le soleil se couche à l'ouest »

Dans un index inversé simple, on obtiendra une liste de tous les mots du corpus ainsi que les documents où ils sont présents :

  • Le { X Y }
  • Soleil { X Y }
  • Est { X }
  • Ardent { X }
  • Se { Y }
  • Couche { Y }
  • À { Y }
  • Ouest { Y }

Si l'index inversé indique également la position des termes sur chaque page web, on aura des données plus précises sur la composition des documents :

  • Le { X,1 Y,1 } (autrement dit, Le apparaît en première position dans les documents X et Y)
  • Soleil { X,2 Y,2 }
  • Est { X,3 }
  • Ardent { X,4 }
  • Se { Y,3 }
  • Couche { Y,4 }
  • À { Y,5 }
  • Ouest { Y,6 }

Avec cette structure de données, un moteur peut rapidement identifier une page web pertinente pour les termes de recherche tapés par un internaute et générer des résultats. Comme vous pouvez le voir, la mise en place d'un index inversé n'est pas une mince affaire. Il faut beaucoup de temps et de ressources pour le constituer et le mettre à jour. La contrepartie de la rapidité qu'offre cette forme d'indexation est donc un temps d'insertion de données plus long. Il existe cependant certains programmes comme le moteur de recherche open source Apache Lucene qui peuvent implémenter rapidement des index inversés lorsqu'ils sont intégrés à une base de données plein texte.

Index inversé et Index : à ne pas confondre

Il est très important de bien faire la distinction entre un index inversé et un index tout court, car ces deux expressions désignent deux choses différentes.

L'index d'un moteur de recherche est la base de données contenant l'ensemble des documents ou des pages que ses robots d'indexation crawlent et stockent. C'est de cette copie du web constamment mise à jour que le moteur tire les informations lorsqu'un internaute lance une requête. Un moteur de recherche peut avoir plusieurs index. Dans l'architecture de Google par exemple, il existe un index principal correspondant aux pages web les plus qualitatives et un index secondaire qui est réservé au contenu de second choix. Ce dernier n'est sollicité que lorsque l'utilisateur ne trouve pas l'information qu'il recherche parmi les pages « qualitatives ».

L'index inversé quant à lui est tout simplement un système qui vient compléter l'index classique afin d'accélérer le temps de traitement des documents. Les deux ressources interagissent constamment, mais leurs rôles ne sont pas interchangeables. Le processus d'indexation de l'information n'est également pas le même.

Comment fonctionne l'Index inversé ?

Lorsqu'une requête est lancée par un utilisateur en quête d'information, les moteurs de recherches sollicitent systématiquement leur index inversé pour identifier en un laps de temps très court la liste des documents (de l'index) dans lesquels le mot-clé tapé est présent. Ensuite, un classement est réalisé grâce aux algorithmes en charge du calcul de pertinence, ce qui aboutit à la génération d'une page de résultats contenant l'information recherchée. Les pages sont trouvées et affichées par ordre de pertinence décroissant.

Lorsque la recherche d'une information porte sur une expression contenant plusieurs mots, le processus devient beaucoup plus complexe. Pour commencer, les moteurs identifient dans leur index inversé les pages web dont le texte contient chaque mot de l'expression recherchée et les confrontent pour trouver leur intersection (c'est-à-dire les documents dans lesquels tous les mots de l'expression sont présents). Si les termes constituant l'expression sont rares, alors cette approche suffit pour trouver une information pertinente, car l'intersection sera petite. Par contre, lorsque ce sont des termes fréquents, beaucoup d'autres analyses doivent être effectuées par les moteurs afin que des pages pertinentes pour la recherche puissent être identifiées. Dans certains cas, plusieurs index inversés peuvent même être utilisés lors d'une recherche.

Enfin, un index inversé peut également garder en mémoire tampon les requêtes les plus fréquentes afin de réduire le temps de traitement lorsqu'il est sollicité pour ce type de recherches.