Recherche Google : comment ça marche de l’intérieur

Note : Ce post explicatif ne fait pas partie des tutoriels, même s’il pourra sans doute servir à mieux les aborder.
_______________________
L’objectif est ici de de permettre à tous de comprendre, de manière schématique et non technique, comment fonctionne le moteur de recherche leader quand vous lui soumettez une requête. Hormis un peu d’humour californien, Google n’apporte malheureusement pas d’info claire et synthétique à ce sujet, donc allons-y par nos propres moyens, en divisant le processus en 9 étapes :
1. Vous tapez google.com ou google.fr dans la barre d’adresse de votre navigateur (ou cliquez sur un lien y pointant).
2. Vous êtes redirigé par une fonctionnalité du logiciel de DNS de Google, qui vous amène vers la grappe de serveurs Google (cluster in English) la plus efficace. L’efficacité est ici déterminée en fonction de sa proximité géographique et de sa disponibilité. En gros, vous vous rendez sur le méga ordinateur Google le mieux équipé pour répondre rapidement à votre requête tout en optimisant l’équilibre du système dans son ensemble.
Bon à savoir : Google détient au moins 200 clusters à travers le monde, dont on estime que chacun dispose d’une bonne paire de dizaines de milliers d’ordinateurs bon marchés transformés en très grosse machine par l’assemblage en réseau (l’union fait la force).
3. Vous tapez votre requête dans la boîte prévue à cet effet. Par exemple, “lapin hypocondriaque”.
4. Cette requête est traitée par le web server, qui est en quelque sorte votre interlocuteur au niveau du moteur de recherche. C’est lui qui va ensuite interagir avec tous les autres serveurs. Son rôle est également de s’assurer que les requêtes sont optimalement dispatchées sur les différents serveurs du cluster, afin que tous les utilisateurs puissent obtenir les résultats de leur recherche dans le meilleur délai possible.
5. Avant de vous expliquer ce qui se passe après, il nous faut maintenant regarder ce qui s’est passé avant. Dans un premier temps, Google lance des spiders appelés Googlebots. Ce sont des programmes qui parcourent le web en suivant les liens. Ils extraient le texte et le code des pages visitées. Ils les importent ensuite au niveau des serveurs pour en stocker les données. L’opération a lieu de façon continue, à des intervalles plus ou moins réguliers selon l’importance des sites et leur fréquence de mises à jour.
6. Chacune des pages parcourues est évaluée pour en déterminer la crédibilité, la pertinence sur telle ou telle expression clé, la popularité, etc. Tout ça est fait par différents algorithmes. En tout, plus de 200 critères sont évalués, dont le fameux Page Rank (bientôt des posts juste sur ce thème, je vous tiendrai au courant), c’est à dire la valeur absolue d’une page en fonction de sa popularité, calculée en fonction du nombre, de la qualité et de la contextualité des liens y pointant à partir d’autres pages.
Courage, on y est presque…
7. Les données recueillies sur les pages (mais pas les pages elles mêmes), soumises aux résultats de ces différentes évaluations, sont stockées sur l’index server, qui les classifie toutes de manière à ce qu’elles soit le plus faciles possibles d’accès quand Google fait une requête. Pas très clair ? Bon, à titre purement schématique (c’est évidemment beaucoup plus complexe en réalité) voici un petit exemple : si vous avez les pages A, B et D, mais pas la page C, qui comportent chacune le mot “neige”, l’index server aura, dans son entrée pour le mot neige, un listing incluant les pages A, B et D: cela permettra de répondre rapidement à une requête pour le mot “neige” sans avoir à scanner à nouveau le contenu de toutes les pages indexées.
8. L’index server détient donc toutes sortes de données sur les pages, mais pas les pages elles-mêmes. Les copies des pages sont en effet stockées sur le document server. Lorsque vous cliquez sur “en cache” dans les résultats de recherche, c’est justement cette copie que vous voyez (bon, en fait, Google peut indexer vos pages sans les prendre en cache, y compris à votre demande, mais c’est rare et ça ne change pas le fond du processus). Google garde sur ses serveurs plusieurs copies de chaque page, afin de pouvoir en extraire le plus rapidement possible le contenu pertinent qui apparait dans les résultats de recherche : titre, méta, snippet (les petits morceaux de textes extraits de la page incluant l’expression clé).
Tout ça doit prendre de la place, me direz vous. A ce niveau là, ne vous faites pas trop de soucis pour eux. Google déclare disposer sur ses serveurs d’environ 20 petabytes (alors vraiment, vous devriez avoir honte de trouver ce mot drôle), en sachant qu’1 petabyte = 1 125 899 906 842 624 bytes (si vous voulez plus d’équivalences…). En plus, il paraît que, comme souvent, Google la joue modeste, et Wired les soupçonne d’en disposer en fait de 10 fois plus.
9. Toutes ces infos reviennent à votre fidèle serviteur, le web server, dont l’un des programmes, le page builder, organise les données en une simple, claire et propre page de résultats.
En sachant que tout ça prend environ 0,5 secondes, en tous les cas toujours moins d’1, et qu’on a simplifié au maximum, c’est tout de même pas mal, vous ne trouvez pas ?
Voilà voilà, j”espère que ce post vous aura permis d’avoir une vision plus claire de ce qui se passe dans les immenses entrailles du moteur. Si vous avez des questions, évidemment, la section commentaires est (entre autres) faite pour ça. Sinon, j’avais pensé mettre un graph pour illustrer les différentes étapes, mais j’ai l’impression que pour le coup, ça ne ferait que compliquer la chose et/ou rendre le post extrêmement long. Sinon peut être des slides. Si l’une de ces options vous paraît utile afin de mieux comprendre, dites-le moi, et je mettrai quelque chose en ligne.


