SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Télécharger

Le moteur de recherche

Juin 2001 — mis à jour le : 22 mars

Toutes les versions de cet article :

SPIP 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 et les auteurs, ...


Principe

Il y a deux grandes façons de faire un moteur de recherche. La première est de chercher tout bêtement dans le type de stockage existant (fichiers HTML, base de données... selon le type de site). La seconde consiste à indexer les contenus dans la base de données. La solution de l’indexation a été retenue jusqu’à SPIP 2.0. A partir de SPIP 3.0, on recherche directement les contenus sans effecter d’indexation au préalable.

D’autre part, dans le cas de SPIP, nous sommes obligés d’utiliser PHP et MySQL comme pour le reste du logiciel, ce qui ne permet pas de réaliser un moteur très performant, en termes de rapidité, mais aussi de pertinence ou d’enrichissements divers (indexation de documents extérieurs au site, création de champs sémantiques permettant de proposer des recherches plus fines, etc.).

L’avantage du moteur interne, cependant, c’est qu’il permet de gérer l’affichage des résultats à travers les mêmes méthodes (squelettes) que le reste des pages de SPIP, et à l’intérieur du même environnement visuel.

La recherche

La recherche s’effectue simplement en séparant le texte de recherche en ses différents mots ; le même filtre est appliqué que lors de l’indexation : suppression des mots de trois lettres ou moins (sauf sigles), et translittération.

Pour chaque contenu recherché, le score des différents mots est ensuite récupéré puis additionné afin d’obtenir le score total. Enfin, les résultats sont en général affichés par ordre décroissant de score {!par points}, c’est-à-dire de pertinence (mais cela est laissé à la volonté de la personne qui écrit les squelettes de mise en page).

La recherche n’offre pas d’opérateurs booléens, l’opérateur implicite étant grosso modo un « OU » logique. Cependant, les articles trouvés s’affichent dans un ordre qui privilégie les résultats contenant le plus de mots orthographiés précisément selon la requête. Ainsi, une requête sur « la main rouge » mettra en évidence les articles contenant « main » et « rouge », loin devant les articles ne contenant que « maintenance » ou « rouget » - ceux-ci apparaîtront, mais plus loin dans le classement.


Voir le squelette de cette page Site réalisé avec SPIP | Espace de traduction | Espace privé