 |
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 re-visiter 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. Qu'ils sont les seuls
4. Qui la remplissent de bonheur
5. Madame rêve d'artifices
6. Des formes oblongues
7. 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.lirepourcomprendre.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.com 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.)
Voici quelques liens complémentaires: