Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours JAVA » Cours Framework JAVA

Formation avancé sur l’utilisation du Framework Apache Nutch pour Java [Eng]

Formation avancé sur l’utilisation du Framework Apache Nutch pour Java [Eng]
Participez au vote ☆☆☆☆☆★★★★★

Formation avancé sur l’utilisation du Framework Apache Nutch pour Java [Eng]

...

INTRODUCTION

Nutch est un ensemble complet de moteurs de recherche Web à code source libre qui vise à indexer le World Wide Web aussi efficacement que les services de recherche commerciaux [9]. En tant que plate-forme de recherche, elle est également prometteuse à petite échelle, car son architecture flexible permet aux communautés de la personnaliser. et peut même réduire à un ordinateur personnel.

Son objectif fondateur était d'accroître la transparence du processus de recherche sur le Web, car la recherche devenait une tâche quotidienne. L'organisation à but non lucratif Nutch soutient les efforts de développement open source car elle relève des défis techniques majeurs liés à l'exploitation du Web public. Les installations de serveur Nutch ont déjà indexé des collections de 100 millions de pages tout en offrant une qualité de résultat de recherche de pointe. Parallèlement, les petites entreprises ont également adopté Nutch pour leurs réseaux intranet et campus. À cette échelle, tous ses composants peuvent s'exécuter sur un seul serveur.

Plus important encore, Nutch facilite la personnalisation du processus de recherche pour certains types de contenu, comme un moteur de recherche Creative Commons récent pouvant interroger à l'aide de contraintes de licence de propriété intellectuelle (voir la figure 1). Cette tendance a inspiré notre propre expérience consistant à appliquer Nutch à une échelle personnelle chez CommerceNet. Nous avons émis l’hypothèse que la même architecture que celle utilisée pour faire tourner des moteurs de recherche publics sur du matériel dédié il ya dix ans pourrait être prête à être exécutée en tâche de fond sur un ordinateur portable. Nutch pourrait s'adapter à la structure hypertexte distincte des archives personnelles d'un utilisateur. Nous suggérons également qu'il existe des possibilités intéressantes pour mélanger ces échelles. En particulier, nous avons étendu Nutch à l’indexation d’un intranet ou d’un extranet, ainsi que de tout le contenu auquel elle renvoie. Cette sorte de recherche par «voisinage» aide les visiteurs à explorer la mémoire collective d’une organisation.

En outre, de nombreux autres projets de recherche universitaires et industriels s'appuient sur Nutch pour explorer les aspects de la recherche sur le Web, allant de l'intégration avec des résumés de documents à la formation de cours de deuxième cycle en fouille de données. Cet article motive Nutch dans le contexte d’autres recherches sur la recherche hypertexte; décrit son architecture interne et son comportement; évalue la manière dont cette architecture prend en charge ou entre en conflit avec les exigences des problèmes de recherche hypertexte aux niveaux global, local et personnel; des rapports sur la manière dont il a été adopté par d'autres chercheurs et utilisateurs; et réfléchit sur les orientations futures.

  1. CONTEXTE

Le projet Nutch est né de l’expérience du premier auteur dans le développement de Lucene [13], une bibliothèque d’indexation de texte Java intégrée au projet Open Source Apache Jakarta. Lucene était son quatrième système de récupération d’informations majeur, s’appuyant sur plus de quinze ans de travail pour le moteur de recherche d’Excite [14]; Premier service d’indexation d’Apple, V-Twin [48] (à présent remplacé par SearchKit [3]); et travailler chez Xerox PARC. Il y a dix ans, le premier moteur de recherche Web public, Webcrawler [44], reposait sur NeXTStep IndexingKit. Suivant cet exemple, Nutch a également transformé Lucene en un moteur de recherche Web en ajoutant l'analyse, l'analyse syntaxique, l'analyse graphique et une interface utilisateur.

3.1 Desiderata

Lorsque AltaVista a été lancé en 1995, la recherche sur tout le Web n'était qu'une recherche sur fond de ciel qui spéculait sur le fait qu'il serait peut-être faisable, sur un plan de calcul, d'indexer tout le Web; Aujourd'hui, il s'agit d'une industrie mondiale valant plus de cent milliards de dollars [6]. En moins de dix ans, la recherche sur le Web est passée d’un exercice intellectuel en informatique à une pratique courante dans les pays développés - plus des trois quarts des internautes américains utilisent un moteur de recherche chaque mois.Aujourd'hui, la recherche sur le Web redéfinit les frontières du systèmes distribués à grande échelle.

Nutch offre une alternative transparente aux moteurs de recherche commerciaux. Seuls les résultats de recherche open source peuvent être totalement fiables. (Ou du moins, leur parti pris est public.) Tous les principaux moteurs de recherche existants ont des formules de classement exclusives et n'expliqueront pas pourquoi une page donnée se classe comme elle le fait. En outre, certains moteurs de recherche déterminent les sites à indexer en fonction des paiements, plutôt que des avantages des sites eux-mêmes. Nutch, quant à lui, n'a rien à cacher et aucun motif pour biaiser ses résultats ou son robot d'exploration d'une autre manière que d'essayer de donner à chaque utilisateur les meilleurs résultats possibles.

La transparence est essentielle au fonctionnement d’une société libre et elle est aussi essentielle pour les logiciels d’infrastructure sociétale. La conférence Turing Award de Ken Thompson [52] est un avertissement classique selon lequel il peut être dangereux de s’appuyer sur n’importe quel logiciel sans l'avoir vérifié jusqu'au bout. Pouvons-nous prouver ou réfuter les affirmations concernant, par exemple, un parti pris de droite dans l’exploration automatisée de nouvelles [30].

L'équipe Nutch s'est engagée dans un processus de développement transparent. Cependant, ils ont choisi d'encourager les développeurs avec une licence libérale similaire à celle d'Apache Software Foundation, plutôt que de légalement imposer le partage de source.

Nutch a pour objectif de permettre à quiconque de déployer facilement et économiquement un moteur de recherche Web de classe mondiale. C'est un défi de taille. Pour réussir, le logiciel Nutch doit être capable de:

  • chercher plusieurs milliards de pages par mois
  • maintenir un index de ces pages
  • rechercher cet index jusqu'à 1000 fois par seconde
  • fournir des résultats de recherche de très haute qualité
  • opérer à moindre coût

…

Nutch s'est également fixé des objectifs techniques clairs, liés à la faisabilité (sa capacité à fonctionner à cette échelle); et économie (capacité à fonctionner suffisamment efficacement pour être pratique). Néanmoins, la tâche elle-même devient plus facile à mesure que la communauté mûrit et que les ordinateurs deviennent de plus en plus puissants. Apparemment, même un diplômé d'université peut créer un moteur de recherche rentable de 600 millions de pages en C ++ aujourd'hui (Gigablast, [27]). L'Internet Archive à but non lucratif a même dépassé la barre des 10 pages [43]!

3.2 Travaux connexes

De nombreux moteurs de recherche ont du code source disponible pour au moins une utilisation non commerciale, allant de simples indexeurs de texte à des moteurs de recherche Web à part entière; ils sont également en concurrence avec les logiciels et les appareils propriétaires destinés au marché de la «plate-forme de recherche d'entreprise» [22].

Indexation de texte Open Source. Le tableau 1 présente les systèmes de recherche en texte intégral disponibles actuellement: Glimpse [34], Namazu [38], le système de gestion des gigaoctets / MG4Java [7] et Lucene [13].

Lucene est un moteur de recherche de texte particulièrement flexible: il indexe progressivement, avec de petits index (environ 30% de l'original); fonctionne dans très peu de RAM (indépendamment de la taille du corpus); prend en charge des requêtes booléennes arbitraires sur plusieurs champs de document définis par l'utilisateur; renvoie les résultats classés par pertinence; et prend en charge l'analyse lexicale définie par l'utilisateur et les algorithmes d'extraction. Il est assez bien considéré qu'il a même été ré-implémenté dans plusieurs autres langues: C ++ (CLucene), C # (NLucene, Lucene.net), Python (Lupy), Perl (Plucene, Lucene :: QueryParser) et Ruby .

Indexation hypertexte open-source. La recherche sur le Web nécessite un moteur de recherche de texte, mais également un système d’analyse Web efficace et robuste, capable de saturer la bande passante disponible du réseau, d’actualiser les pages de manière intelligente, de respecter le Robot Exclusion Standard, de choisir de nouvelles pages de haute qualité à explorer, à l’aide du disque. économisez de l’espace et continue de fonctionner même face à des documents inattendus, des serveurs Web lents, des liens rompus, des milliers d’URL pour le même document et des documents corrompus. Il doit également permettre aux utilisateurs d’appeler une recherche de texte et d’afficher les résultats. Enfin, la nature hypertexte du Web offre des possibilités supplémentaires d’amélioration des résultats par rapport à un simple moteur de recherche de texte, notamment l’indexation de liens et l’analyse de la structure des liens. C’est un effort technique majeur, même à commencer par un indexeur de texte.

Un certain nombre de systèmes de recherche sur le Web sont aujourd'hui largement utilisés, notamment WebGlimpse (bien qu'il soit soumis à d'importantes contraintes de licence) [33], ht: // Dig [36], Swish-E [46] et Nutch [12]. Nutch propose des extraits de haute qualité, une analyse de la structure de liens, une indexation texte-texte, des résultats de recherche par pertinence, la mise en cache de contenu et une prise en charge intégrée de la parallélisation sur un cluster afin d'indexer des analyses deux ordres de grandeur plus grands que ceux-ci. d'autres systèmes.

  1. ARCHITECTURE

Nutch a une architecture hautement modulaire qui utilise des API de plug-in pour l'analyse de type de support, l'analyse HTML, les protocoles de récupération de données et les requêtes [40]. Le noyau comporte quatre composants principaux:

Chercheur: à partir d'une requête, il doit trouver rapidement un petit sous-ensemble pertinent d'un corpus de documents, puis les présenter. La recherche d'un grand sous-ensemble pertinent se fait normalement avec un index inversé du corpus; classement au sein de cet ensemble pour produire les documents les plus pertinents, qui doivent ensuite être résumés pour l'affichage.

Indexeur: crée l'index inversé à partir duquel le chercheur extrait les résultats. Il utilise Lucene stockant des index.

Base de données: stocke le contenu du document pour l'indexation et la synthèse ultérieure par le chercheur, ainsi que des informations telles que la structure des liens de l'espace de document et l'heure de la dernière extraction de chaque document.

Fetcher: demande des pages Web, les analyse et en extrait les liens. Le robot de Nutch a été entièrement écrit à partir de zéro.

La figure 2 illustre les relations entre les éléments qui se référent les uns aux autres, en les plaçant dans la même boîte, et ceux dont ils dépendent dans une couche inférieure. Par exemple, le protocole ne dépend pas de net, car il n’est qu’un point d’interface pour les plugins qui fournissent une grande partie des fonctionnalités de Nutch.

4.1 ramper

Un intranet ou un moteur de recherche de niche ne prend que quelques heures à l'analyse d'une machine unique, tandis qu'une analyse sur le Web entier peut prendre de nombreuses machines plusieurs semaines ou plus. Un seul cycle d'analyse consiste à générer une liste d'extraction à partir de la webdb, à extraire ces pages, à analyser celles des liens, puis à mettre à jour la webdb. Dans la terminologie de [4], le robot d'exploration de Nutch prend en charge à la fois l'exploration et l'arrêt et l'exploration et le seuil avec seuil (ce qui nécessite un retour d'informations provenant de l'évaluation et de la spécification d'un étage). Il utilise également une politique d'actualisation uniforme. toutes les pages sont récupérées à un même intervalle (30 jours, par défaut) quelle que soit leur fréquence de modification. Il n'y a pas encore de boucle de rétroaction, bien que la conception de Page.java puisse définir des délais individuels de réanalyse sur chaque page. Le processus de récupération doit également respecter la bande passante et les autres limitations du site Web cible. Cependant, toute solution polie nécessite une coordination avant la récupération; Nutch utilise la localisation de références la plus simple possible: faire en sorte que tous les extractions d'un hôte particulier soient exécutées sur une seule machine.

Decouvrir ces documents

  • Cours de formation pour s’initier avec Apache Nutch

    Cours de formation pour s’initier avec Apache Nutch

  • Cours Java pour débuter avec le Framework Apache Nutch [Eng]

    Cours Java pour débuter avec le Framework Apache Nutch [Eng]

  • Manuel avancé sur l’utilisation du Framework JAVA apache Accumulo

    Manuel avancé sur l’utilisation du Framework JAVA apache Accumulo

  • Démarrer avec Apache luence support de formation avancé

    Démarrer avec Apache luence support de formation avancé

  • Tutoriel sur la sécurité des applications Web JAVA avec Apache Shiro [Eng]

    Tutoriel sur la sécurité des applications Web JAVA avec Apache Shiro [Eng]

  • Cours détaillé avec exemples sur le Framework JAVA Apache Velocity pour débutant

    Cours détaillé avec exemples sur le Framework JAVA Apache Velocity pour débutant

  • Cours Data Mining utilisation du Framework Apache luence

    Cours Data Mining utilisation du Framework Apache luence

  • Formation sur le développement web avec le Framework Apache Cocoon

    Formation sur le développement web avec le Framework Apache Cocoon

Articles connexes

  • Tuto Python & Django : créer une page web
  • Comment établir un plan de formation efficace pour votre entreprise ?
  • Comment faire une convocation pour une formation ?
  • 5 conseils pour devenir un expert en informatique?
  • 16 meilleurs IDE / EDI pour en Django Python (Comparatif)
  • Formation en acupuncture : les critères de sélection
  • Exercice liste chainée générique JAVA - Structures de données abstraites
  • Quels sont les meilleurs logiciels de gestion de planning de formation ?
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02