Jean Claude Roques Comment ça marche un moteur de recherche ? Les moteurs de recherche sont indispensables sur internet. Le site web le plus connu d'internet est même probablement un moteur de recherche: Google. Mais comment ça fonctionne ? Il y a (généralement) plusieurs étapes: la collecte le stockage l'extraction l'indexation le classement la recherche elle-même (Notez que certains moteurs de recherche peuvent avoir des étapes spécifiques supplémentaires, ou des étapes en moins. Je ne présente ici que le cas général.) La collecte Tous les moteurs de recherche possèdent des logiciels qui parcourent sans relâche tout les sites web de la planète. Ces programmes se comportent comme un simple internaute: ils téléchargent des pages html et suivent les liens hypertextes qu'elles contiennent (comme quand vous cliquez sur un lien dans une page). La seul différence avec vous, c'est: Qu'ils ne chargent pas les images ou vidéos qui sont présentes dans les pages (les robots ne sont intéressés que par les pages html) Ils parcourent tous les liens qu'ils trouvent sur un site. On appelle ces logiciels des "robots". Google, MSN et les autres moteurs de recherche possèdent chacun leur robots. (Dans la pratique, ce sont de simples ordinateurs reliés à internet et équipés d'un logiciel spécial.) Comme ces robots vont très vite, il arrive qu'ils "écroulent" un site web en faisant trop de requêtes dessus, ou vont chercher des pages qui ne sont pas pertinentes. Il existe un moyen de les réguler en plaçant un fichier spécial (robot-rules) sur chaque site. Le fichier robots.txt (placé à la racine du site) contient des règles indiquant aux robots ce qu'ils peuvent ou ne peuvent pas récupérer. La plupart des robots (Google, Yahoo, MSN, etc.) respectent ces règles. Cela vous permet, par exemple, d'interdire à Google d'indexer une partie de votre site web. Le stockage Les robots récupèrent les pages et les stockent sur disque. Sur des centaines de disques dur. En général, ils stockent également la date de dernière visite du site, afin d'aller le revisiter cette page quelques temps après. (Certains robots visitent les sites plus souvent que d'autres.) L'extraction Une fois une page html récupérée, un programme en extraît tout le contenu. Ce qui intéresse les robots est: tout le texte de la page. les méta-informations (auteur de la page, mots-clés, URL de la page...) les liens vers d'autres pages (liens hypertexte) Et les robots ignorent le reste: la mise en page (couleurs, police de caractères, taille, emplacement...) est ignorée. les images, vidéos, sons et musique sont généralement ignorés. Il y a donc une grande différence entre ce que vous voyez dans une page, et ce que les robots voient. Par exemple, les robots seront bien incapables de lire ceci: car pour eux, c'est une image. Ils seront donc incapables d'en lire le contenu de l'indexer. Conséquence: Cette image sera totalement ignorée par les robots. L'indexation Maintenant qu'on a récupéré le texte de toutes ces pages, il faut se donner les moyens de rechercher dedans de manière efficace. On effectue une indexation des pages. Il existe différentes méthodes d'indexation. En voici une simple: Prenons le texte suivant: 1. Madame rêve d'atomiseurs 2. Et de cylindres si longs 3. 4. 5. 6. 7. Qu'ils sont les seuls Qui la remplissent de bonheur Madame rêve d'artifices Des formes oblongues Et de totems qui la punissent (J'ai numéroté les lignes exprès.) Pour chaque mot rencontré, on va noter à quelle ligne il apparaît. Mot apparaît aux lignes Madame 1,5 rêve 1,5 atomiseurs 1 bonheur 4 ... ... Ainsi, si je dois retrouver le mot "rêve", je sais immédiatement qu'il se trouve aux lignes 1 et 5. De la même façon, pour chaque mot rencontré, les moteurs de recherche vont noter dans quelles pages (quelles URLs) ces mots apparaissent. Cela leur permettra de vous donner immédiatement la liste des pages contenant un mot donné. Mot URL à laquelle apparaît ce mot comprendre www.comprendrelabourse.com, www.comprendre.org, www.lirepourcompr endre.org, sebsauvage.net/comprendre/... ordinateur www.01net.com, www.dicofr.com/cgi-bin/n.pl/ dicofr/definition/20010101003926, fr.wikipedia.org/wiki/Ordinateur, www. commentcamarche.net/pc/pc.php3... Cependant, dans beaucoup de langues certains mots sont trop courant (le, la, les, des, etc.). Par exemple rechercher "le" dans une page ne serait pas pertinent. Cela s'appelle des "stop-words". Ces "stop-words" sont automatiquement éliminés et ne sont donc pas indexés. Notez qu'il existe de nombreuses autres méthodes d'indexation. Le classement Bien, on a indexé les pages. Maintenant on a un petit problème: Il y a beaucoup trop de pages ! Par exemple, le mot "ordinateur" ramène plus de 5 millions de pages sur Google. Un tel moteur de recherche serait parfaitement inutile: Le malheureux internaute devrait encore parcourir ces 5 millions de pages pour trouver la plus pertinente. Il est donc indispensable de classer ces pages par pertinence, c'est à dire mettre en premier les pages qui sont le plus susceptibles d'apporter la bonne réponse au mot demandé. Ce n'est pas une mince affaire ! Il existe des tas de méthodes différentes. En voici deux: Le classement sémantique. Le moteur de recherche va essayer de deviner le champ sémantique d'une page pour la classer: Si une page contient le mot "quartier", mais également "pomme", "four", "pâte", il y a de bonnes chances pour que la page parle de pâtisserie. Si une page contient le mot "quartier", mais aussi "lune","téléscope", "apogée", il y a de fortes chances que la page parle d'astronomie. Cela permet de classer les pages, et de renvoyer à l'internaute celles qui ont le plus de chance d'être pertinentes. Par exemple, si un internaute recherche "quartier planète": "Quartier" seul est ambigu, mais "planète" appartient bien au champ sémantique de l'astronomie. Le moteur de recherche renverra donc en priorité les pages qui sont classées dans la catégorie "astronomie". En revanche s'il recherche seulement "quartier", le moteur de recherche n'a aucun moyen de deviner ce que veut vraiment l'internaute: il lui renverra plein de page contenant le mot quartier. C'est pour cela que parfois vous avez l'impression que les moteurs de recherche vous renvoient plein de résultats sans aucun intérêt. Pour des résultats plus précis, ajoutez des mots à votre requête. ("quartier patisserie", "quartier gateaux", "quartier cuisine", etc...). Plus vous ajoutez de mots à votre recherche, plus la recherche est précise et moins il y aura de pages renvoyées. Il peut être utile, lors d'une recherche, d'utiliser des synonymes ou des mots appartenant au même champ sémantique afin d'obtenir d'autres résultats. Le classement par liens A priori, plus il existe de liens vers une page, plus cette page doit faire référence dans un domaine. Logique, non ? C'est ce que fait (entre autres) Google pour classer les pages: Plus il existe de liens vers une page, plus cette page "remontera" dans les résultats de Google. (Exemple: Beaucoup de monde a fait des liens vers mon site. Du coup, sebsauvage.net apparaît en 4ième position chez Google quand on cherche le mot "Comprendre".). Dans la théorie, c'est génial et les résultats sont très pertinents ! Mais dans la pratique... nous verrons plus loin. Et il existe de nombreuses autres méthodes pour calculer la pertinence des pages, et ce sont des secrets bien gardés des différents moteurs de recherche. C'est même surtout sur le classement de pertinence des pages que se battent les moteurs de recherche, plus que sur le nombre de pages indexées. Google a réussi à s'en tirer assez bien aussi bien sur le nombre de pages indexées que sur la pertinence des pages renvoyées (même si ça ne paraît pas formidable au premier abord). La recherche La dernière étape est la recherche. Le moteur de recherche va vous présenter un formulaire (plus ou moins évolué) qui vous permettra de trouver ce que vous voulez. Ils ont en option des critères de recherche supplémentaires pour vous aider à trouver plus précisément ce vous voulez. Ces critères de recherche sont alors envoyés au moteur de recherche qui va analyser votre demande, supprimer les stop-words, sélectionner les pages correspondant à vos critères (grâce aux indexes), les classer puis vous présenter les résultats. La manière classique de présenter les résultats est celle de Google, mais il en existe d'autres. kartoo.fr essai de vous présenter les pages en relation (plus ou moins proche) avec des mots-clés. Exalead vous montre une copie d'écran du site. etc. Certains moteurs de recherche essaient également de détecter les fautes de frappe en vous proposant des pages contenant des mots très proches, ou en vous suggérant une autre orthographe pour votre mot. Certains, comme Kartoo, vous proposent d'autres mot ou termes qui sont présents dans les pages de résultats. Les particularités Certains moteurs de recherche offrent des fonctions supplémentaires. Parfois, les moteurs de recherche vont également indexer d'autres choses que le web. Par exemple, Google est capable d'indexer les fichiers PDF, Word (.doc) ou PowerPoint (.ppt/.pps). Cela permet d'étendre les recherche au delà des seules pages html. Autre exemple: Google Scholar, par exemple, indexe les documents universitaires (rapports, thèses...). Ils peuvent également s'alimenter à d'autres sources (agence journalistiques, agences scientifiques, grandes bibliothèques, entreprises diverses...) Certains moteurs offrent également des recherches spécialisées (automatiquement restreintes à un domaine). Par exemple, Google possède un moteur spécialisé dans tout ce qui est Linux (http://www.google.com/linux), Microsoft, Apple... Cela permet d'avoir des résultats de recherche qui ne sont pas parasités par des pages inutiles. Autre exemple: le moteur de recherche koders.com permet de recherche exclusivement dans le code des logiciels opensource. Certains moteurs sont spécialisés dans certains types de fichiers. Par exemple findsounds.com est spécialisé dans la recherche de sons. Certains moteurs ont également la possibilité d'utiliser des mots-clés. Par exemple Google possède des mots clés pour restreindre la recherche à un seul site, trouver toutes les pages qui ont un lien vers un site donné, etc. Les inconvénients Dans l'idéal, on a tout ce qu'il faut pour obtenir de bon résultats et des pages qui nous intéressent. Dans la pratique... et bien c'est loin d'être le cas. La pollution Certains parasites gâchent complètement les résultats et trichent pour apparaître en haut de liste dans les résultats de recherche. Pourquoi ? Pour gagner de l'argent, tout simplement (grâce aux bandeaux de pub). Il y a différentes méthodes de pollution: Créer des tonnes de pages ne contenant rien à part des tonnes de liens vers d'autres pages pleines de liens aussi... (Beaucoup de liens vers leurs propres pages = meilleur classement). Mettre des tonnes de mots-clés tout les pages. Piquer le contenu des sites populaire et les montrer aux robots des moteurs de recherche (comme les pages volées sont déjà populaires, cela les fait remonter). Bidouiller ses DNS pour inclure les mots du dictionnaire (beaucoup de moteurs de recherchent donnent en priorité les sites dont l'adresse contient le mot recherché). Polluer des forums, des blogs ou des wiki en postant des messages contenant des centaines de liens. etc. Ce sont des nuisibles qui sont là uniquement pour gagner du pognon. La publicité Sur certains moteurs de recherche, la publicité est envahissante. L'objectivité Certains moteurs de recherche ont tendance à donner en priorité les pages de leurs partenaires commerciaux dans les résultats, ou sont touchés d'une amnésie subite de l'existance des pages des concurrents. On encore censurent carrément des pages, parfois sur ordre d'un gouvernement (C'est le cas de Google et MSN en Chine, par exemple). Etant donné que les enjeux financiers sont gigantesques, on peut légitimement douter de l'objectivité des moteurs de recherche. Google l'a bien compris, et sa devise annoncée est "Do no evil". Mais ça ne veut pas dire qu'il faut leur accorder une confiance aveugle. Confidentialité Les moteurs de recherche suivent les liens des sites web, tous les liens. Si par hasard un webmaster a oublié de mettre un mot de passe sur une partie de ton site, c'est tout ses fichiers privés qui se retrouveront indexé par les moteurs de recherche. L'exemple le plus flagrand est Google Dorks ("dorks" signifie "crétin", par référence aux webmaster assez cons pour laisser traîner des fichiers privés sur le web). Certains ont fustigé Google pour ça, alors que ces informations sont publiques. C'est juste que les webmasters en question ont été assez bête pour laisser des fichiers privés en libre accès, sans mot de passe et sans robot-rules. Pourquoi Google est-il aussi populaire ? On peut trouver diverses explications. Voici la mienne: L'interface reste simple: Google n'a pas cédé au syndrôme "arbre de Noël" tel qu'on peut le voir sur certains sites (Exemple typique du syndrôme "arbre de Noël": CDiscount). D'ailleurs on ne s'y trompe pas: les autres moteurs de recherche sont presque tous revenus à une interface sobre. Google indexe beaucoup de pages: On présume que c'est Google qui indexe le plus de pages (mais aucun moyen d'en être vraiement sûr). Il y a donc potentiellement plus de chances de trouver ce que vous cherchez sur Google. Sans compter que Google est (à ma connaissance) le seul moteur de recherche à indexer les fichiers pdf/ps/word/ppt... Cependant, il peut être pénible de faire le tri dans ce grand nombre de pages. Les résultats sont pertinents. Si si, je vous assure, même si ça n'a pas l'air terrible, les résultats sont plus pertinents que la plupart des autres moteurs de recherche. Google a beaucoup travaillé là dessus. Google est souple: il est l'un des rares moteurs de recherche à permettre la recherche sur un domaine seulement, ou la recherche des liens pointants vers une page donnée. La publicité sur Google n'est pas envahissante: Pas de gros bandeau clignotant avec des couleurs à vous faire attraper une crampe de paupière: Les publicités Google sont discrètes et n'empiètent pas trop sur les résultats. En prime, la publicité est généralement plus pertinente que sur les autres moteurs (Qu'est-ce que j'en ai à f*utre de gagner une carte verte pour travailler aux USA quand je recherche de la documentation sur les API Java ??? 'm'énerve.) Je comprends le fonctionnement des moteurs de recherche Collecte des données. Des robots (Web robot, spider, crawler) naviguent en permanence sur le Web (et souvent dans les forums de discussion) et archivent intégralement les pages qu'ils trouvent dans des serveurs. L'indexation est effectuée par un autre moteur qui associe à chaque page : les mots-clés inscrits dans l'en-tête et dans certaines zones significatives de la page (que l'internaute de voit pas); la position des mots dans la page et leur répétition (dans une certaine mesure); l'indice de popularité (le nombre de liens qui pointent vers la page); etc. Moteur d'interrogation. Lorsque tu tapes une requête, celle-ci est envoyée au moteur qui accède à ses bases de données pour chacun des mots, et restitue les résultats sous forme de liens vers des pages. Les documents repêchés sont classés selon un ordre de pertinence décroissant. On trouve généralement deux niveaux de recherche sur la même interface : recherche simple et recherche avancée (mode expert). o La recherche simple, très utilisée, se fait avec des opérateurs logiques faciles à retenir. o La recherche avancée est accessible grâce à un formulaire qui pose automatiquement les opérateurs booléens et permet de choisir le type de publication, date, langue, etc. La syntaxe d'interrogation varie d'un moteur à un autre, mais présente certains points communs. Les moteurs ne cherchent pas de synonymes à ta place. Consulte un dictionnaire de synonymes. La plupart des moteurs ne tiennent pas compte du sens des mot et retournent tous les résultats d'une recherche. Le terme tableau par exemple a plusieurs sens différents : oeuvre art, données chiffrées, panneau plat sur lequel on écrit dans une classe, tableau de bord dans un avion, etc. Les métamoteurs cherchent dans les bases de données de plusieurs moteurs et répertoires. Résultats différents. La même requête adressée à plusieurs moteurs retourne des pages différentes : les méthodes (algorithme) employées pour déterminer la pertinence des mots varient d'un moteur à un autre. Certains moteurs permettent de rechercher efficacement plusieurs formats de documents : Word, PowerPoint, Excel, Adobe PDF, HTML, images gif et jpg, mp3, etc. La mise à jour des bases de données se fait à des intervales réguliers, mais cela peut prendre des semaines, voire des mois, pour qu'une nouvelle page soit indexée.