Projet de moteur de recherche : indexation terminée !

Projet de moteur de recherche : indexation terminée !L’indexation des contenus est de loin la phase la plus compliquée de la création d’un moteur de recherche. Elle consiste à aller récupérer par technique de scrapping dans les pages des sites les informations qui pèsent dans l’algorithme de pertinence.

Le titre bien sûr. Ensuite, les métas données associées à l’article comme les tags et les catégories. Et puis, les h1, h2, h3, etc, sans oublier surtout les textes associés aux ancres ! Le sens naît du lien.

Toutes ces données doivent être nettoyées de toutes leurs scories et c’est là le plus long de l’affaire. Il m’aura fallu éliminer des caractères à l’image de cette fonction de ma classe principale indexing.class.php :

    protected function clean_text($text)
    {
        $text=preg_replace('@(« ?| ?»| ?" ?|“ ?| ?”|--)@',' ',$text,-1);
        while(preg_match('@  @',$text))
        {
            $text=preg_replace('@  @',' ',$text,-1);
        }
        return trim($text);
    }

Il m’aura fallu traiter les doublons, notamment au niveau des liens, de manière à minimiser la quantité de requêtes cURL pour le scrapping des pages.

J’ai eu ensuite à tester d’éventuels problèmes de verrous sur les tables utilisés par les différents process s’exécutant concomitamment.

J’ai encore un souci que je ne parviens pas à résoudre. Pour certains journaux, comme le New York Times, je suis hélas en erreur 403. Et je ne parviens pas à comprendre comment ils peuvent détecter que je scrappe leurs pages compte tenu des headers définis à l’identique de ceux d’un navigateur. Vais-je devoir me faire passer pour GoogleBot ou BingBot ?

Phase 3 : l’IHM

Après avoir défini l’algorithme de pertinence, il me faudra définir l’interface homme machine et les informations associées aux pages à afficher. J’ai accessoirement le nom de domaine à choisir.

Pour la volumétrie, je verrais tout à la fin, en test.

Moteurs de recherche /