Le moteur de recherche intégré à SPIP est très simple d’utilisation, et cependant relativement puissant. Voici les principes sur lesquels il repose.
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.
À l’indexation s’ajoute un deuxième principe : la pondération. Il s’agit d’essayer de rendre le moteur plus pertinent. Par exemple, un mot qui apparaît dans le titre d’un article donnera plus d’imoprtance à l’article en tant que résultat attendu que s’il apparaît dans le corps du texte. De plus, si un mot apparaît 25 fois dans un article, et seulement deux fois dans un autre, on affichera en premier l’article où le mot est le plus fréquent. SPIP 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.
Il ne faut pas confondre 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.
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.
Tous les éléments de contenu de SPIP font 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 syndiqué, les titres des articles récupérés sur ce site entrent également dans l’indexation).
Tous les mots de tous les éléments de contenu du site sont extraits, puis analysés (pour pondération). Cependant, SPIP ne va pas retenir tous les mots.
Les mots de moins de 4 lettres ne sont pas retenus. Les concepteurs de SPIP ont choisi de considérer que les mots de trois lettres et moins ne sont pas « importants » ; évidemment, il y a de la perte puisque des mots comme Val, mer, sud... ne sont plus pris en compte.
N.B. Depuis la version 1.6 de SPIP, les sigles de deux lettres et plus, y compris ceux contenant des chiffres (G8, CNT, PHP, ONU...), sont indexés. Un sigle est un mot ne comprenant aucune minuscule.
SPIP n’autorise pas les constructions du type « ET », « OU », il ne fonctionne pas de cette manière.
Dans ce type de recherche, SPIP va effectuer l’opération de recherche pour chaque mot, récupérer les points de chaque article (ou brève, ou rubrique, etc.), et ajouter ces points.
Ce n’est donc pas une recherche de type « ET » ni « OU », c’est une addition de points. Et à l’usage, cela se montre plutôt efficace.