YaCy
Description de l'image YaCy logo.png.
Description de cette image, également commentée ci-après
Page de recherche YaCy
Informations
Développé par Michael Peter Christen et les contributeurs au projet
Première version 2004[1]
Dernière version 1.924 ()
Dépôt github.com/yacy/yacy_search_serverVoir et modifier les données sur Wikidata
État du projet Actif
Écrit en Java
Environnement Multiplate-forme[2],[3]
Langues Multilingue
Type Moteur de recherche Internet pair à pair libre et gratuit[2],[4],[5],[6],[7]
Politique de distribution Gratuit
Licence Licence libre
(GNU GPL v2)
Site web yacy.net/fr

YaCy (pour Yet Another Cyberspace, homophone anglais de ya see (vous voyez)) est un moteur de recherche libre fonctionnant selon le principe d'un réseau pair à pair. Ce logiciel est développé en Java et était installé, fin 2006, sur des centaines d'ordinateurs appelés YaCy-peers ou postes-YaCy (600 actifs quotidiennement en [8]). YaCy est par exemple utilisé par l'Université Johannes Gutenberg de Mayence[9].

Un réseau YaCy est caractérisé par une architecture distribuée (non centralisée). Tous les nœuds (pairs) YaCy sont équivalents et il n'existe pas de serveur principal.

Sur chaque poste, YaCy tourne soit en mode robot d'indexation ou en mode proxy. Chaque poste-YaCy lance des robots d'indexation qui analysent les pages trouvées. Les résultats sont enregistrés dans une banque de données distribuée (index).

L'accès au moteur de recherche se fait par l'intermédiaire d'un serveur Web local qui présente un champ pour y introduire les mots clefs et fournit les résultats sous forme d'une page web habituelle.

Le projet YaCy a été fondé en 2003 par Michael Christen[10]. Le logiciel est délivré sous licence libre GNU GPL.

Le programme

Le cœur du moteur de recherche YaCy n'est pas, comme pour d'autres moteurs de recherche, un serveur central, mais un logiciel qui fonctionne sur presque tous les systèmes d'exploitation. La recherche s'effectue sur une page web locale, délivrée par le logiciel installé. L'affichage des résultats se présente également sous la forme d’une page web.

Un serveur proxy est couplé au système P2P : il est utilisable en option et indique automatiquement les pages visitées. Cette information n'est pas stockée par les sites visités, qui peuvent récupérer des informations supplémentaires via GET ou POST ou qui utilisent des cookies ou l'identification HTTP (par exemple pour les pages protégées par mot de passe)[11]. De cette manière, il est assuré que seules des données ouvertement accessibles à tous sont indiquées.

Fonctionnalités avancées

Architecture

Le moteur de recherche YaCy est fondé sur quatre éléments[12]:

Crawler
Un robot de recherche qui navigue de page web en page web en analysant leur contenu.
Indexer
Crée un index de mots inversé (RWI en anglais). Chaque mot dans l'index possède sa liste d'URLs pertinentes et des informations quant à leur ranking. Les mots sont hachés avant d'être stockés.
Interface Recherche et Administration
Conçue comme une interface web fournie par une servlet HTTP locale avec un conteneur de servlets.
Stockage des données
Stockage de la base de données de l'index de mots inversé en utilisant une table de hachage distribuée.

Caractéristiques techniques

Le programme est fondé sur un serveur web qui fonctionne comme un proxy-cache. L'interface utilisateur est accessible via le serveur web ; on peut y effectuer des recherches ou administrer son poste. Le proxy transmet son code au crawler, ce qui signifie que toutes les pages visitées non personnalisées sont automatiquement ajoutées à l'index. YaCy se sert d'Apache Solr depuis la version 1.04.9097. En outre, le réseau YaCy offre quelques domaines accessibles via le proxy.

Distribution de l'index

À la différence de lors de l'échange de données, les résultats d'un moteur de recherche P2P doivent être disponibles immédiatement. Afin de le garantir, YaCy utilise une table de hachage distribuée. Cela signifie que tous les mots et les URLs stockés sont envoyés aux postes dont la valeur de hachage va avec la valeur de hachage correspondante du mot ou de l'URL. Lors d'une recherche, cela se passe dans l'autre sens: on ne recherche que chez les postes qui peuvent, d'après l'URL, connaître leur valeur de hachage pour ce mot. Ainsi, seule une fraction des postes est contactée lors de la recherche, afin d'obtenir des résultats malgré tout satisfaisants.

Types de postes

YaCy différencie quatre types de postes:

Virgin
Un poste Virgin n'a aucun contact d'aucune sorte avec le réseau et n'est donc pas repérable. On est donc le seul à pouvoir savoir que son poste est Virgin.
Junior
Le poste est derrière un pare-feu. Les autres peuvent le voir en tant que poste Junior ou comme peer potentiel. Cependant, ils ne peuvent connaître que l'heure de sa dernière connexion et n'ont aucun moyen de savoir s'il est toujours en ligne.
Senior
Un poste Senior peut être atteint de l'extérieur et est un membre à part entière du réseau YaCy.
Principal
C'est un poste Senior qui de plus envoie une "seedlist" que les autres postes peuvent utiliser à des fins d'amorçage.

Protocole

Le protocole YaCy consiste en des servlets texte que le serveur web intégré met à disposition sous /yacy/servletname.html. Les autres postes lui transmettent des données via les paramètres GET: ils reçoivent en réponse un simple texte, dont le format exact diffère selon les servlets.

Amorçage

À l'amorçage, YaCy essaie de trouver d'autres postes du réseau. Pour cela, il cherche tout d'abord dans le fichier superseed.txt une seedlist à télécharger: les URLs de seedlists chargées par d'autres postes s'y trouvent. Puis il obtient via le fichier seeds.txt les références à d'autres postes, et ainsi le contact du réseau YaCy peut être entrepris. Au prochain démarrage, YaCy peut être amorcé par les seeds connues. Les seedlists sont alors utiles uniquement lorsque de nombreuses références ne sont plus correctes.

Avantages et inconvénients

Avantages

Inconvénients

Notes et références

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « YaCy » (voir la liste des auteurs).
(de) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en allemand intitulé « YaCy » (voir la liste des auteurs).
  1. (cs) [vidéo] Vizualizace vzniku spontánního řádu - spontaneous order evolution visualisation sur YouTube
  2. a et b Korben, « Yacy – Le moteur de recherche sans censure », Korben.info, (consulté le )
  3. (en) Michael Muchmore, « YaCy », PCMag.com, (consulté le )
  4. (en) FSFE Free Software Foundation Europe, « Web Search By The People, For The People: YaCy 1.0 », fsfe, (consulté le )
  5. (en) Katherine Noyes, « YaCy: It's About Freedom, Not Beating Google », PCWorld, (consulté le )
  6. Simon Robic, « Alternative à Google #2 : YaCy », Numerama.com, (consulté le )
  7. (de) « Tipps für den Umgang mit Suchmaschinen », Welt Online,‎ (lire en ligne, consulté le )
  8. « Web Search by the people, for the people - Decentralization » (consulté le )
  9. http://www.fsz.uni-mainz.de/48.php « Copie archivée » (version du sur Internet Archive)
  10. (de) « Heise online », sur heise online (consulté le ).
  11. (de) « De : Privacy », sur yacy-websearch.net via Wikiwix (consulté le ).
  12. (en) « YaCy Technology Architecture », YaCy.net (consulté le )

Voir aussi

Articles connexes

Moteurs de recherche en p2p

Autres

Liens externes