Un moteur de recherche est une application web permettant, de trouver des ressources à partir d’une requête sous forme de mots. Les ressources peuvent être des pages web, des articles de forums Usenet, des images, des vidéos, des fichiers, etc.. Certains sites web offrent un moteur de recherche comme principale fonctionnalité ; on appelle alors moteur de recherche le site lui-même.

Ce sont des instruments de recherche sur le web sans intervention humaine, ce qui les distingue des annuaires. Ils sont basés sur des « robots », encore appelés bots, spiders, crawlers ou agents qui parcourent les sites à intervalles réguliers et de façon automatique pour découvrir de nouvelles adresses (URL). Ils suivent les liens hypertextes qui relient les pages les unes aux autres, les uns après les autres. Chaque page identifiée est alors indexée dans une base de données, accessible ensuite par les internautes à partir de mots-clés.

C’est par abus de langage qu’on appelle également moteurs de recherche des sites web proposant des annuaires de sites web : dans ce cas, ce sont des instruments de recherche élaborés par des personnes qui répertorient et classifient des sites web jugés dignes d’intérêt, et non des robots d’indexation — on peut citer par exemple DMOZ et anciennement Yahoo!.

Les moteurs de recherche ne s’appliquent pas qu’à Internet : certains moteurs sont des logiciels installés sur un ordinateur personnel. Ce sont des moteurs dits desktop qui combinent la recherche parmi les fichiers stockés sur le PC et la recherche parmi les sites Web — on peut citer par exemple Exalead Desktop, Google Desktop et Copernic Desktop Search, Windex Server, etc.

On trouve également des métamoteurs, c’est-à-dire des sites web où une même recherche est lancée simultanément sur plusieurs moteurs de recherche, les résultats étant ensuite fusionnés pour être présentés à l’internaute. On peut citer dans cette catégorie Ixquick, Mamma, Kartoo, Framabee ou Lilo.

Historique

Les moteurs de recherche sont inspirés des outils de recherche documentaire (à base de fichiers inversés, alias fichiers d’index) utilisés sur les mainframes depuis les années 1970, comme le logiciel STAIRS sur IBM. Le mode de remplissage de leurs bases de données est cependant différent, car orienté réseau. Par ailleurs la distinction entre données formatées (« champs ») et texte libre n’y existe plus, bien que commençant depuis 2010 à se réintroduire par le biais du web sémantique.

Des moteurs historiques ont été Lycos (1994), Altavista (1995, premier moteur 64 bits) et Backrub (1997), ancêtre de Google.

Fonctionnement

 

Représentation d’un petit morceau du web autour de Wikipedia.org.

Le fonctionnement d’un moteur de recherche comme tout instrument de recherche se décompose en trois processus principaux :

  1. L’exploration ou crawl : le web est systématiquement exploré par un robot d’indexation suivant récursivement tous les hyperliens qu’il trouve et récupérant les ressources jugées intéressantes. L’exploration est lancée depuis une ressource pivot, comme une page d’annuaire web. Un moteur de recherche est d’abord un outil d’indexation, c’est-à-dire qu’il dispose d’une technologie de collecte de documents à distance sur les sites Web, via un outil que l’on appelle robot ou bot. Un robot d’indexation dispose de sa propre signature (comme chaque navigateur web). Googlebot est le user agent (signature) du crawler de Google
  2. L’indexation des ressources récupérées consiste à extraire les mots considérés comme significatifs du corpus à explorer. Les mots extraits sont enregistrés dans une base de données organisée comme un gigantesque dictionnaire inverse ou, plus exactement, comme l’index terminologique d’un ouvrage, qui permet de retrouver rapidement dans quel chapitre de l’ouvrage se situe un terme significatif donné. Les termes non significatifs s’appellent des mots vides. Les termes significatifs sont associés à un poids. Celui-ci reflète à la fois la probabilité d’apparition du mot dans un document et le « pouvoir discriminant de ce mot » dans une langue, conformément au principe de la formule TF-IDF.
  3. La recherche correspond à la partie requêtes du moteur, qui restitue les résultats. Un algorithme est appliqué pour identifier dans le corpus documentaire (en utilisant l’index), les documents qui correspondent le mieux aux mots contenus dans la requête, afin de présenter les résultats des recherches par ordre de pertinence supposée. Les algorithmes de recherche font l’objet de très nombreuses investigations scientifiques. Les moteurs de recherche les plus simples se contentent de requêtes booléennes pour comparer les mots d’une requête avec ceux des documents. Mais cette méthode atteint vite ses limites sur des corpus volumineux. Les moteurs plus évolués sont basés sur le paradigme du modèle vectoriel : ils utilisent la formule TF-IDF pour mettre en relation le poids des mots dans une requête avec ceux contenus dans les documents. Cette formule est utilisée pour construire des vecteurs de mots, comparés dans un espace vectoriel, par une similarité cosinus. Pour améliorer encore les performances d’un moteur, il existe de nombreuses techniques, la plus connue étant celle du PageRank de Google qui permet de pondérer une mesure de cosinus en utilisant un indice de notoriété de pages. Les recherches les plus récentes utilisent la méthode dites d’analyse sémantique latente qui tente d’introduire l’idée de cooccurrences dans la recherche de résultats (le terme « voiture » est automatiquement associé à ses mots proches tels que « garage » ou un nom de marque dans le critère de recherche).
De même, un article sur la récolte du blé en France sera jugé pertinent comme candidat à la réponse sur une question concernant la culture des céréales en Europe.

Des modules complémentaires sont souvent utilisés en association avec les trois briques de bases du moteur de recherche. Les plus connus sont les suivants :

  1. Le correcteur orthographique : il permet de corriger les erreurs introduites dans les mots de la requête, et s’assurer que la pertinence d’un mot sera bien prise en compte sous sa forme canonique.
  2. Le lemmatiseur : il permet de réduire les mots recherchés à leur lemme et ainsi d’étendre leur portée de recherche.
  3. L’anti-dictionnaire : utilisé pour supprimer à la fois dans l’index et dans les requêtes tous les mots « vides » (tels que « de », « le », « la ») qui sont non discriminants et perturbent le score de recherche en introduisant du bruit.

Orazio Puglisi

Formateur Informaticien 

06 14 35 15 52

oraziopuglisi@gmail.com

puglisiorazio@wanadoo.fr