Fonctionnement du moteur de recherche

Comment les résultats sont-ils classés ?

Le site intègre un moteur de recherche qui permet d’effectuer des recherches sur différents types d’informations présentes dans la base de données : les articles, les rubriques, les mots-clés...

Le moteur de recherche intégré à Spip est très simple d’utilisation, et cependant relativement puissant. Voici les principes sur lesquels repose le moteur de SPIP.

 L’indexation

Afin d’être rapide et efficace (c’est-à-dire pour qu’il donne des réponses pertinentes), le moteur de Spip utilise un système d’indexation des contenus. L’indexation consiste à analyser tous les textes contenus dans SPIP, à en extraire tous les mots, et à sauvegarder pour chaque mot l’endroit où il apparaît.

Comme l’index dans un livre vous présente les mots importants du livre, suivis des numéros des pages où les retrouver, l’index du moteur de recherche fait correspondre à chaque mot utilisé sur le site le numéro de l’article, de la brève... où le retrouver.

Ensuite, lorsqu’on utilise le moteur pour effectuer une recherche, Spip n’a plus besoin de consulter l’ensemble des textes du site, mais simplement d’aller consulter l’index pour savoir où se trouvent ces mots. On gagne ainsi énormément de temps (et plus le site est gros, plus on gagne de temps).

 La pondération

À l’indexation s’ajoute un deuxième principe : la pondération. Il s’agit d’essayer de rendre le moteur plus pertinent. Par exemple, si un mot apparaît dans le titre d’un article, et dans le corps du texte d’un autre article, on considère que si l’on recherche ce mot, il faut en premier indiquer celui où il apparaît dans le titre. De plus, si un mot apparaît 25 fois dans un article, et seulement deux fois dans un autre, on veut afficher en premier l’article où le mot est le plus fréquent.

On voit que l’indexation simple ne suffit pas. Si on recherche chat, on trouvera les articles où il apparaît, mais sans pouvoir ensuite classer ces articles entre eux (selon que le mot chat apparaît une fois ou 20 fois, ou s’il se trouve dans le titre ou seulement dans le texte...).

Le site va donc calculer une pondération pour chaque mot dans chaque article. C’est-à-dire donner des points à ce mot en fonction de l’endroit où il se trouve, et du nombre de fois où il apparaît :

dans le titre 8 points
dans le soustitre 5 points
dans le surtitre 5 points
dans le descriptif 4 points
dans le chapo 3 points
dans le texte 1 point
dans le post-scriptum 1 point

Si le mot apparaît plusieurs fois, on additionne les occurrences.

Par exemple, si dans un article, le mot chat apparaît :

  • une fois dans le titre : 8 points
  • deux fois dans le descriptif : 2 fois 4 = 8 points
  • six fois dans le texte : 6 fois 1 = 6 points
  • total : 8 + 8 + 6 = 22 points.

Le mot chat, dans l’index, est donc ainsi enregistré :

  • chat, dans l’article numéro X, 22 points ;
  • chat, dans l’article numéro Y, 15 points ;
  • ...

Si l’on recherche le mot « chat », grâce à l’index, on saura donc qu’il se trouve dans les articles X et Y, et de plus, on peut classer ces articles entre eux : 22 points dans X, 15 points dans Y, donc on considère que l’article X répond mieux à la recherche.

 Les mots-clés

Beaucoup d’utilisateurs confondent les mots-clés et l’indexation. Les mots-clés n’ont, par nature, aucun rapport avec l’indexation : quand Spip effectue une recherche, il ne recherche pas dans les mots-clés associés à des articles (ce serait très limité), il recherche dans l’index qu’il a fabriqué à partir du texte exact des articles. Ainsi, dans le principe même de l’indexation, les mots-clés n’interviennent pas du tout.

En revanche, les mots-clés sont tout de même utilisés pour fabriquer la pondération des articles. Si un mot-clé est associé à un article, il entre alors dans l’indexation de l’article lui-même, avec une forte pondération (12 points pour le nom du mot-clé, 3 points pour son descriptif). Ainsi, si notre article Y (15 points en prenant simplement compte son contenu propre) est associé au mot-clé chat (parce qu’on indique par ce mot que c’est le sujet de cet article), il faut ajouter à l’indexation de cet article, pour le mot chat, les 12 points du mot-clé : total 27 points. Dans notre recherche sur chat, l’article Y devance désormais l’article X.

Notons enfin que tous les éléments de contenu du site font ainsi l’objet d’une indexation : les articles, les brèves, les rubriques, les auteurs, les mots-clés, les sites référencés (si le site est une syndication, les titres des articles récupérés sur ce site entrent également dans l’indexation).