YaCy : un moteur de recherche peer to peer sous licence libre pour remplacer Google

C’est ma découverte du jour que je dois  à Twitter et plus particulièrement à @glenux. Ce qui me permet au passage de me dire que je devrais peut-être tenter l’expérience de ne plus lire mes centaines de flux RSS et de ne faire que suivre les liens poussés par les personnes que je suis sur identi.ca et twitter. Ce n’est pas la première fois que des informations pertinentes remontent ainsi alors qu’elle ne sont jamais apparues dans les flux RSS que je suis.

En effet de YaCy, je n’avais encore jamais entendu parler bien qu’il existe depuis 2006. Pourtant, l’idée de pouvoir disposer d’un moteur de recherche décentralisé m’avait déjà traversé l’esprit, mais sans en trouver une implémentation utilisable.

A la lecture de la présentation de YaCy, il y a de quoi être emballé. Tout d’abord et c’est à mes yeux une qualité essentielle il est distribué sous licence libre GPL.

Ensuite, ce sont les caractéristiques techniques qui m’emballent :

  • Une instance de YaCy peut stocker plus de 20 millions de documents.
  • Partage d’index en peer to peer : YaCy implémente un système de partage d’index s’apparentant à un mécanisme de peer to peer (P2P). Ainsi, une instance de YaCy partage son index avec d’autres pairs le rendant ainsi résistant à certaines formes de censures tout comme le partage de fichier P2P est résistant à la suppression de fichiers.
  • La possibilité bien entendu d’exécuter votre propre portail de recherche sur votre poste en local ou sur un serveur dédié. YaCy est disponible pour les environnements GNU/Linux, mais aussi pour Windows. Il est écrit en Java ce qui explique cette portabilité.
  • Confidentialité de vos recherches : elles sont effectuées sur votre instance YaCy et ne sont donc communiquées à personne.

YaCy se décompose en quatre modules : un web crawler (le processus qui parcourt les pages web à indexer), un moteur d’indexation, une base de données et une interface utilisateur.

Concernant la base de données embarquée, elle est spécifique à YaCy et utilise une structure de type AVL-Trees.

Mais d’un point de vue pratique, cela donne quoi ?

Je suis donc allé consulter le wiki pour voir si je trouvais de quoi installer YaCy. Je vous conseille de rester sur la version anglaise ou allemande du wiki, il y a en effet peu de contenu en langue française.

J’ai trouvé la documentation de l’installation de YaCy sur Debian. Elle est on ne peut plus simple et en cinq minutes à peine, je peux me connecter à l’interface web de yaCy par l’URL http://localhost:8080. Attention cependant l’installation de YaCy nécessite un runtime Java en version 1.5 minimum.

Lors du premier lancement, un écran vous propose de configurer la façon dont vous souhaitez utiliser votre moteur de recherche :

  • en mode pair-à-pair ou communautaire,
  • en mode autonome : vous décidez des portions du web que vous souhaitez indexer,
  • en mode local : vous vous appuyez alors sur des pages web stockées localement.

En mode pair-à-pair, il vous faut définir un nom pour votre instance et également ouvrir le port 8080 pour permettre à d’autres pairs de se connecter.

Le logiciel propose une page de recherche simple et sobre

Vous remarquerez qu’il est possible de rechercher du texte, des images, des fichiers audio, vidéo ou des applications. On retrouve la possibilité d’indiquer le site sur lequel on souhaite effectuer sa recherche avec une syntaxe du type « mot site:le_site.com ».

Bref à peu près l’essentiel de ce que l’on demande en général à un moteur de recherche. Les résultats sont présentés de façon classique avec des petits boutons vous permettent d’enregistrer une URL dans les favoris du  logiciel, mais aussi de « voter » pour indiquer la pertinence du résultat à l’aide d’un petit plus vert et d’un moins rouge.

Vous remarquerez la possibilité qui est offerte à partir du résultat d’une recherche de l’affiner en sélectionnant un domaine particulier ou un mot-clé ou encore une notion d’auteur que je n’ai pas très bien comprise. Pour les plus geek, une interface plus sophistiquée est également disponible. Cependant, elle ne m’a pas semblé totalement opérationnelle. YaCy n’a pas peur de la comparaison, puisqu’il propose une recherche avec un double affichage vous permettant de comparer ces résultats avec ceux d’un autre moteur de recherche.

L’interface d’administration est rustique, mais efficace et bien organisée. Elle permet de configurer tous les aspects du fonctionnement du logiciel, mais aussi de suivre de façon très détaillée l’activité des différents processus.

Je me suis livré à quelques tests avec l’instance que j’avais installé sur mon serveur virtuel Gandi. Bien que ne disposant que de 2 parts soit l’équivalent des 2/3 d’un core d’un processeur et de 512Mo de RAM, YaCy a fonctionné avec des temps de réponse acceptable bien que le load average de mon serveur soit monté jusqu’à plus de 8 sur certaines recherches. Si vous prévoyez de l’utiliser durablement, ne soyez pas trop mesquin sur la puissance CPU.

Quant à la pertinence des résultats, difficile de l’estimer dans l’immédiat. Les résultats retournés sont très différents de ceux d’un Google et parfois moins bon. Cependant si cela me permet de me passer de google et de son moteur de recherche pour 80% de mes besoins alors un grand pas aura été franchi.  De plus, je n’ai pas encore exploré toutes les possibilités du moteur ni indexé aucun contenu. J’éviterais donc de porter un avis définitif sur ce point. Si vous avez pu vous aussi tester ce moteur de recherche, votre avis sera le bienvenue en commentaire.

Il n’en demeure pas moins que je reste séduit par cette découverte qui représente à mes yeux l’archétype du moteur de recherche de demain. Reposant sur le système du pair-à-pair, c’est l’extension du nombre de noeuds qui permettra d’améliorer les résultats ainsi que la quantité de données indexées, alors si vous le pouvez n’hésiter pas à participer au réseau. Personnellement, je vais laisser tourner cette instance quelques temps pour voir si je parviens à me passer de Google dans mes recherches quotidiennes en espérant que mon serveur tienne le choc.


Réagir à cet article

Article original écrit par Philippe Scoffoni le 25/02/2010. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.

Vus : 537
Publié par Philippe Scoffoni : 544