YaCy
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].
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_server |
Ătat du projet | En dĂ©veloppement |
Ă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 |
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
- YaCy offre Ă tous les utilisateurs de l'option proxy la possibilitĂ© d'atteindre des postes sous le domaine PEERNAME.yacy respectivement PEERHASH.yacyh. L'utilisateur peut dĂ©finir une page d'accueil sous www.PEERNAME.yacy; un systĂšme de partage de fichiers est accessible sous share.PEERNAME.yacy et l'interface habituelle sous PEERNAME.yacy. Il peut dĂ©finir lui-mĂȘme d'autres sous-domaines dans lesquels il crĂ©e un nouveau dossier avec le nom du sous-domaine. Il s'agit aussi d'une sorte de DNS dynamique.
- YaCy offre également un espace pour une page d'accueil et pour l'échange de fichiers aux utilisateurs qui ne se servent pas de YaCy, indépendamment du .yacy-Domain. On peut le lier à l'adresse IP actuelle ou un nom de domaine dynamique.
- YaCy possÚde une fonctionnalité qui sert à envoyer des messages texte (formatés en wikitexte) et, selon les réglages du récepteur, à envoyer des données.
- YaCy intĂšgre un wiki et un blog.
- La gestion des marque-pages permet de créer des marque-pages privés ou visibles publiquement.
- Il est possible de définir des listes noires pour des domaines particuliers.
- Il existe une interface OpenSearch disponible sous http://<peer-address>:<peer-port>/opensearchdescription.xml, par exemple http://search.yacy.net/opensearchdescription.xml.
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
- Les rĂ©sultats des recherches ne peuvent pas ĂȘtre censurĂ©s ou biaisĂ©s pour des raisons publicitaires puisqu'il n'y a pas de serveur central.
- Le moteur de recherche offre une plus grande fiabilité (du moins théoriquement) car une partie du réseau YaCy sera toujours accessible si certains postes ne fonctionnent pas.
- Le logiciel est un logiciel libre et publié sous la licence publique générale GNU. Il est de plus gratuit.
- Il n'y a pas d'annonces publicitaires gérées par un systÚme centralisé puisque le moteur n'appartient pas à une entreprise.
- De par sa conception, YaCy peut ĂȘtre utilisĂ© afin d'indexer le « web cachĂ© », y compris Tor, I2P ou encore Freenet.
- Il est possible d'atteindre un degré élevé de confidentialité.
- Le protocole YaCy utilise des requĂȘtes HTTP, prĂ©servant la transparence et l'accessibilitĂ© tout en aidant au diagnostic et Ă la recherche des sources de problĂšmes. Ă l'aide d'outils de compression tels que gzip, les performances peuvent ĂȘtre amĂ©liorĂ©es jusqu'Ă quasiment atteindre le niveau de celles des protocoles binaires (tels que TCP et UDP).
- Soutien intégré pour OpenSearch.
Inconvénients
- Lors d'une recherche, YaCy doit contacter d'autres postes et recharger la page d'accueil afin de bloquer le spam. Une recherche va donc prendre plus de temps qu'avec un moteur de recherche conventionnel.
- Puisqu'il n'y a pas de serveur central et que le rĂ©seau YaCy est ouvert Ă tous, des postes malveillants seraient en principe capables d'introduire des rĂ©sultats de recherche inexacts, commercialement biaisĂ©s ou du spam. MalgrĂ© cela, aucun rĂ©sultat de recherche affichĂ© chez l'utilisateur ne peut ĂȘtre "faux" en thĂ©orie puisque tous les rĂ©sultats sont vĂ©rifiĂ©s en tĂ©lĂ©chargeant chaque page appartenant Ă l'ensemble des rĂ©sultats et en vĂ©rifiant que les mots recherchĂ©s existent rĂ©ellement dans la page. Cependant, YaCy utilise une chaĂźne User-Agent pour s'identifier, ce qui signifie qu'un serveur web pourrait renvoyer Ă un crawler YaCy un contenu diffĂ©rent de celui renvoyĂ© Ă un visiteur normal.
- Si seuls quelques postes sont accessibles, le nombre de rĂ©sultats sera moindre que par le biais d'une recherche sur un gros moteur de recherche. L'arrĂȘt ou la dĂ©faillance de quelques postes importants peuvent en outre mener Ă des perturbations plus importantes encore.
- Pour des raisons de cache, les requĂȘtes sont sauvegardĂ©es temporairement dans la RAM des postes dans lesquelles elles sont effectuĂ©es. La fonction de hachage utilisĂ©e pour coder les mots de la requĂȘte est avant tout utilisĂ©e pour gĂ©rer la table de hachage distribuĂ©e, et les mots-clĂ©s peuvent ĂȘtre dĂ©couverts en partie Ă l'aide d'un dictionnaire afin de montrer les requĂȘtes en clair.
- Le protocole YaCy utilise des requĂȘtes HTTP, or celles-ci peuvent ĂȘtre plus lentes que celles utilisĂ©es par des protocoles non-textuels (binaires) si elles ne sont pas compressĂ©es.
- YaCy ne comprend aucune fonctionnalitĂ© de traversĂ©e de NAT, ce qui empĂȘche le logiciel d'ĂȘtre utilisĂ© Ă une Ă©chelle aussi large qu'il le pourrait, puisque la possibilitĂ© de configurer le routeur local, quand elle existe, requiert une certaine expertise pour fonctionner correctement.
- Le classement des sites par pertinence est effectuĂ© du cĂŽtĂ© client (les utilisateurs sont encouragĂ©s Ă installer leur propre serveur YaCy, utiliser un serveur local Ă©tant nĂ©cessaire pour profiter au mieux des potentialitĂ©s de YaCy). Les algorithmes de classement, bien qu'aisĂ©ment personnalisables, ne voient pas leur charge de travail distribuĂ©e et sont limitĂ©s Ă l'usage de l'index de mots de YaCy et Ă toute analyse qui pourrait ĂȘtre faite sur l'objet qu'on cherche Ă classer. C'est pourquoi des algorithmes de classement plus complexes, tels que ceux utilisĂ©s par Google et analysant le rang en fonction d'une variĂ©tĂ©s de facteurs contextuels dĂ©veloppĂ©s durant le parcours du contenu, ne sont pour le moment pas rĂ©alisables avec YaCy, ce qui limite la possibilitĂ© pour la plupart des utilisateurs de trouver du contenu plus pertinent.
Notes et références
- (cs) [vidĂ©o] Vizualizace vzniku spontĂĄnnĂho ĆĂĄdu - spontaneous order evolution visualisation sur YouTube
- Korben, « Yacy â Le moteur de recherche sans censure », Korben.info, (consultĂ© le )
- (en) Michael Muchmore, « YaCy », PCMag.com, (consulté le )
- (en) FSFE Free Software Foundation Europe, « Web Search By The People, For The People: YaCy 1.0 », fsfe, (consulté le )
- (en) Katherine Noyes, « YaCy: It's About Freedom, Not Beating Google », PCWorld, (consulté le )
- Simon Robic, « Alternative à Google #2 : YaCy », Numerama.com, (consulté le )
- (de) « Tipps fĂŒr den Umgang mit Suchmaschinen », Welt Online,â (lire en ligne, consultĂ© le )
- « Web Search by the people, for the people - Decentralization » (consulté le )
- http://www.fsz.uni-mainz.de/48.php « Copie archivée » (version du 23 juillet 2018 sur Internet Archive)
- (de) « Heise online », sur heise online (consulté le ).
- http://www.yacy-websearch.net/wiki/index.php/De:Privacy
- (en) « YaCy Technology Architecture », YaCy.net (consulté le )
Voir aussi
Moteurs de recherche en p2p
Autres
- Nutch
- Moteur de recherche
- Architecture distribuée
- Dooble : un navigateur libre avec un moteur de recherche YaCy intégré.
- Sciencenet (it) : un moteur de recherche axé sur les connaissances scientifiques, fondé sur YaCy.
- Arado.sf.net : un moteur de recherche libre et une base de données d'URLs.