SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Institut Supérieur des Études Technologiques De Mahdia
Département Technologies de l’Informatique
Rapport de
Mini Projet
Sujet :
Elaborer un moteur de Recherche spécialisé en Education
Elaboré par :
Mohamed Amine Mahmoudi
&
Zied Cherif
Soutenu le 06/01/2016
©Année Universitaire 2015-2016©
Remerciements
Je remercie Dieu, le Tout Puissant, le Miséricordieux, qui nous a donné l’opportunité de
mener à bien ce travail.
C’est avec un grand plaisir que, j’adresse mes sincères remerciements à l’égard de notre
enseignante Mme CHABBI IKRAM, qui n’a ménagé aucun effort pour la bonne réussite de
ce travail.
Merci à messieurs les membres du jury pour l’attention qu’ils ont bien voulu accorder à mon
travail et pour le temps consacré à son évolution.
Merci à mes amis qui n’ont pas ménagé leur temps pour m’aider à collecter certaines
données.
Je réserve une pensée spéciale à tous les enseignants de l’Institut Supérieur des études
Technologiques de Mahdia qui ont su nous donner une formation didactique et appréciable
durant tout notre cursus, à la promotion Licence Applique en Informatique pour la sagesse
qu’elle a fait preuve. Ce geste sera gravé à jamais dans nos mémoires. Je ne terminerai pas
sans avoir exprimé des remerciements envers toutes les personnes qui ont contribué de près
ou de loin à la réalisation de ce projet.
Sommaire
Introduction Générale .............................................................................................................................1
Chapitre 1 : Notations Théoriques ..........................................................................................................2
I. Introduction..........................................................................................................................2
1. Présentation de l’Api Lucene .........................................................................................2
2. Fonctionnement de Lucene............................................................................................2
II. L’api Lucene ..........................................................................................................................3
III. Java .......................................................................................................................................3
IV. Conclusion.............................................................................................................................4
Chapitre 2 : Spécifications des besoins...................................................................................................5
I. Introduction..........................................................................................................................5
II. Besoins fonctionnels.............................................................................................................5
III. Besoins non fonctionnels......................................................................................................5
IV. Diagramme de cas d’utilisation ............................................................................................5
1. Présentation des acteurs................................................................................................6
2. Présentation graphiques................................................................................................6
3. Description des cas d’utilisation.....................................................................................7
V. Conclusion.............................................................................................................................7
Chapitre 3 : Conception...........................................................................................................................8
I. Introduction.........................................................................................................................8
II. Diagramme de séquence .....................................................................................................8
III. Diagramme de classe...........................................................................................................8
IV. Conclusion............................................................................................................................8
Chapitre 4 : Réalisation............................................................................................................................9
I. Introduction.........................................................................................................................9
II. Environnements de développement ...................................................................................9
III. Taches effectuée..................................................................................................................9
1. L’installation d’API Lucene et configurations ......................................................................9
2. Interface Homme Machine (IHM)..................................................................................... 10
IV. Conclusion......................................................................................................................... 12
Conclusion............................................................................................................................................. 13
Mini Projet
A.U 2015/2016 Page 1
Introduction générale
Etant donné le nombre de pages web présentes pour le Web, il est nécessaire d'utiliser un outil
pour rechercher une ou plusieurs pages spécifiques correspondant à des critères de recherche
notamment le moteur de recherche.
La recherche en ligne est rendue complexe par l'abondance et l'hétérogénéité des ressources
disponibles sur le net. Ces dernières années, les méthodes et les outils de recherche ont
évolués et se sont complexifiés face aux attentes de plus en plus diversifiées des utilisateurs et
au développement du net.
Un moteur de recherche est un outil permettant de trouver des ressources (pages, images,
vidéos...) en saisissant un ou des mots clés. Cet outil peut être soit une application destinée à
faciliter la recherche à l’intérieur d’un site soit un site web complet permettant de fouiller
l’ensemble (ou en tout cas une part importante) des ressources du net. Le moteur de recherche
est aujourd'hui l'outil le plus utilisé.
Un moteur de recherche généraliste permet à l’internaute de chercher des informations dans
tous les domaines, grâce à des requêtes par mots clés.
D’autre part, il existe des moteurs de recherches spécialisés (également appelé moteur de
recherche vertical) procède selon un mode opératoire identique, sinon qu’il limite ses
recherches :
 à un type particulier de documents (vidéos, images, articles de blog…)
 à une thématique précise ou un domaine d’activité en particulier éducation, sciences,
e-commerce, produits high-tech...
Aujourd’hui, il existe de plus en plus des moteurs de recherche de plus en plus spécialisé,
cette spécification rendre le recherche très pratique pour l’internaute. Dans ce cadre s’inscrit
notre mini projet qui a pour objectif d’élaborer un moteur de recherche spécialisé dans
l’éducation.
Mini Projet
A.U 2015/2016 Page 2
Chapitre1 Chapitre 1 : Notion Théorique
Chapitre2
I. Introduction
Avant de commencer le travail, nous présentons quelques notions théoriques utilise dans mon
stage.
Tout d'abord, nous identifions les mots importants, Cela m'a aidé à compléter le travail requis
et les mots techniques au cadre de stage.
II. L’api Lucene
1. Présentation de l’API Lucene
Chapitre3 Il y a plusieurs couches technologiques nécessaires à la mise en œuvre d'un moteur de
recherche d'information. Chaque couche propose des technologies propriétaires ou open
source, et même dans l'open source, plusieurs projets proposent des fonctionnalités similaires.
Nous nous concentrons sur un sous-ensemble de ces technologies open source, celles que nous
considérons comme étant les plus pertinentes pour le monde de l'entreprise.
Chapitre4 Lucene est un moteur de recherche libre écrit en Java qui permet d’indexer et de
rechercher du texte. C’est un projet open source également disponible pour les langages Ruby,
Perl, C++, PHP. Il existe aussi une implémentation pour C# et .NET.
Chapitre5 Lucene est un moteur de recherche open source créé par la fondation Apache. Il sert à
rechercher dans une quantité très importante d'information textuelle, un peu comme le font les
moteurs de recherche internet telle que Google, Yahoo ou Bing. Lucene vous permet de créer
rapidement des moteurs de recherche au sein d’applications Java.
Le noyau, la base de tout, c'est Lucene, un projet Apache.
C'est une API (à l'origine en Java), qui se concentre sur le moteur de recherche proprement
dit:
 Analyser les données entrantes.
 Indexation.
 Analyser les requêtes utilisateurs.
 Chercher les documents pertinents.
 Renvoyer classés.
2. Fonctionnement de Lucene
Chapitre6 L'intérêt de ce programme est qu'il est conçu pour rechercher dans du texte, chose pour
Mini Projet
A.U 2015/2016 Page 3
laquelle ne sont pas conçues les bases de données tel que MySQL (même s’il y a des fonctions
qui s'en rapprochent comme les index fulltext MySQL).
Chapitre7
Chapitre8 Lucene agit en quelque sorte comme une couche intermédiaire entre les données à
indexer et vos programmes. Pour ce faire, il indexera des objets appelés des documents et, à
partir des index, il permettra une recherche rapide et efficace dans ces documents.
Chapitre9 Il n'y a pas de contraintes techniques importantes, Lucene peut être utilisé
pour créer un moteur de recherche sur un site web, ou comme moteur de
recherche de documents dans une entreprise.
Le principe est simple : dans un premier temps, Lucene va lire tout le contenu dans lequel
vous souhaitez recherche (par exemple : toutes les pages d'un site internet), c'est ce qu'on
appelle l'indexation.
Ensuite, on va pouvoir interroger Lucene, qui va alors analyser la requête (le texte recherché,
comme sur Google), et utiliser son index pour ressortir les pages qui correspondent le mieux à
la recherche.
Chapitre10 On communique avec Lucene via une API (généralement sous forme de web services :
XML, JSON...), depuis n'importe quel langage : PHP, Python, Ruby.
 Concurrent de Lucene
Chapitre11 Parmi les concurrents de Lucene, on trouve notamment Google Search Appliance
(GSA) : il s'agit d'un serveur loué par Google qui utilise un algorithme de recherche gardé
secret pour indexer des données. C'est une sorte de boite noire : on ne sait pas ce qu'il y a
à l'intérieur, on l'utilise via son interface de programmation en lui donnant la liste des
contenus (par exemple une liste d'URL) à indexer.
Chapitre12 Sphinx est un autre concurrent de Lucene, il est gratuit et open source et codé en C++
(pas besoin de Java comme Lucene). Sphinx est utilisé par des sites à fort trafic comme
Daily motion ou The Pirate Bay.
III. Java
Le langage Java est un langage de programmation informatique orienté objet créé par
James Gosling et Patrick Naughton, employés de Sun Microsystems, avec le soutien
de Bill Joy (cofondateur de Sun Microsystems en 1982), présenté officiellement le 23
Mini Projet
A.U 2015/2016 Page 4
mai 1995 au SunWorld. La société Sun a été ensuite rachetée en 2009 par la société
Oracle qui détient et maintient désormais Java.
IV. Conclusion
Chapitre13 En conclusion, nous avons présenté l’Api Lucene qui est le cœur de notre moteur de
recherche ainsi on a présenté le langage utiliser pour le développement de notre moteur de
recherche.
Mini Projet
A.U 2015/2016 Page 5
Chapitre14 Chapitre 2 : Spécification des besoins
I. Introduction
Notre moteur de recherche spécialisée en éducation permet à l’internaute d'effectuer des
recherches sur les blogs, les forums ou les listes de diffusion. Ils permettent également de
cibler les recherches sur les actualités.
Deux catégories de besoins auquel l’application doit répondre :
 Des besoins fonctionnels.
 Des besoins non fonctionnels.
II. Besoins fonctionnels
Parmi les besoins indispensables auxquels doit répondre l’application :
 La pertinence des résultats.
 Facilité d’écrire dans barre de recherche affichage des suggestions.
 La recherche avancée ont ajoutent la date, lieu, durée, personne …etc.
 Pagination les résultats.
 L’indexation des pages.
 Trier des résultats.
 Saisir des mots clés.
III.Besoins non fonctionnels
Ce sont les besoins qui permettraient d’améliorer la qualité des services de notre
moteur de recherche comme :
 L’accélération de manipulation de l’application.
 Fiabilité.
 Ergonomie des interfaces.
 Compatibilité et portabilité.
 Options des recherches.
 Organisation les résultats.
IV.Diagrammes de cas d’utilisation
Mini Projet
A.U 2015/2016 Page 6
Le diagramme des cas d’utilisations décrit le comportement du système du point de vue
utilisateur sous forme d’actions et de réactions. Il existe deux concepts fondamentaux dans la
modélisation par les cas d’utilisations:
 Les acteurs qui agissent sur le système.
 Les cas d’utilisations qui représentent les façons dont le système est manipulé par les
acteurs.
A. Le cas d’utilisation : «Rechercher »
1. Présentation des acteurs
Acteur principal : l’Internaute (Professeur, Administrateur, Technicien et
Etudiant)
2. Présentation Graphique
Figure 1 : Diagramme de cas d’utilisation
Mini Projet
A.U 2015/2016 Page 7
3. Description des cas d’utilisation
Après le lancement de notre moteur de recherche l’utilisateur a la possibilité de saisir le mot
après une page de résultat s’affiche ce dernier contient la liste des liens correspondant à la mot
clés saisie.
V. Conclusion
Dans ce chapitre, on a essayé de citer quelques fonctionnalités auquel notre moteur de
recherche doit répondre pour que notre internaute avoir des résultats
Mini Projet
A.U 2015/2016 Page 8
Chapitre 4 : Conception
I. Introduction
Ce chapitre a pour objectif de présenter la solution conceptuelle proposée. En d’autres termes,
ce chapitre devrait répondre à la question comment faire.
La conception est décrite par un ensemble de diagrammes relevant soit du langage de
modélisation UML.
II. Diagramme de séquence
III. Diagramme de classe
IV. conclusion
En clair, comme nous venons de le voir, ce chapitre était consacré, à la conception des
diagrammes, de séquence qui nous ont permis de dégager l'architecture générale de notre
application représentée ici par ce diagramme de classe qui nous renseigne sur la relation
homme Machine de notre application qui sera détaillée dans le prochain chapitre.
Mini Projet
A.U 2015/2016 Page 9
Réalisation
I. Introduction
Dans ce chapitre, nous présentons l'architecture sur laquelle nous avons développé
notre application, les différents outils utilisés ainsi que les composantes applicatives
réalisées.
II. Environnements des développements
C’est un ensemble d'outils pour augmenter la productivité des programmeurs qui
développent des logiciels. Il comporte un éditeur de texte destiné à la programmation,
des fonctions qui permettent, par pression sur un bouton, de démarrer le compilateur
ou l'éditeur de liens ainsi qu'un débogueur en ligne, qui permet d'exécuter ligne par
ligne le programme en cours de construction. Certains environnements sont dédiés à
un langage de programmation en particulier.
Les outils nécessaires sont :
 JDK
 IDE
 API Lucene
III. Taches Effectué
1. L’installation d’API Lucene et Configuration
Lucene appartient au fameux projet Jakarta de la fondation Apache, bien connu pour
ses outils tels que Struts ou Tomcat. Cette API écrite en Java se destine à la création
de puissants moteurs de recherche orientés texte. Parmi les nombreuses qualités de
cette bibliothèque, nous retiendrons essentiellement sa rapidité d'exécution et sa
simplicité d'utilisation, tant pour le programmeur que pour l'utilisateur final. La
découverte de Lucene se déroulera en deux temps. En premier lieu, nous apprendrons
à créer un index à partir de nos documents, pour ensuite soumettre des requêtes au
moteur. L'application que nous allons étudier, intitulée WebIndex, permet
l'indexation d'un document HTML déterminé par une URL.
Lien de Téléchargement :
http://jakarta.apache.org/lucene
Mini Projet
A.U 2015/2016 Page 10
Figure 2 : Importation des bibliothèques d’API Lucene
2. Interface Homme Machine(IHM)
Figure 3 : interface principale de notre moteur
Mini Projet
A.U 2015/2016 Page 11
Figure 4 : les menus
Figure 5 : Messages d’Erreur
Mini Projet
A.U 2015/2016 Page 12
Figure 6 : Résultat de Recherche Figure 7 : Enregistrement les
Résultats
Figure 8 : ouvrir un fichier de Recherche
IV. Conclusion
L’activité d’implémentation était la plus délicate dans le développement de notre application.
Enfin, nous nous intéressons à tester l’application en réseau.
Mini Projet
A.U 2015/2016 Page 13
Conclusion générale
Ce travail a été réalisé dans le cadre de notre mini projet de un mois au sein de Institut
Supérieur des Etudes Technologique de Mahdia Durant notre stage nous a été bénéfique bien
sur le plan théorique que pratique. En effet, sur le plan théorique, nous avons acquis des
notions sur la spécification Lucene, et les différentes méthodes permettant de l’implémenter.
Sur le plan pratique, nous avons eu l’opportunité de mettre en œuvre le processus unifié et de
découvrir les technologies de pointe utilisées dans l’élaboration des applications mobile, à
savoir la plateforme Eclipse Par ailleurs, nous avons eu l’occasion d’exploiter au mieux les
outils de conception tels qu’UML et pour l’élaboration des différents diagrammes.
Finalement, comme tout projet, le nôtre présente quelques insuffisances que nous pouvons les
combler et des imperfections auxquelles on peut remédier. Mais, nous estimons avoir répondu
à la majorité des exigences de cahier des charges ; Ce qui nous mène à certaines constatations
concernant l’estimation du temps nécessaire à la réalisation. D’autre part, ce travail nous a
appris la prise de conscience de nos prochaines obligations outre l’apport technique que nous
avons récolté, et malgré les obstacles que nous avons rencontrés, nous avons appris à accepter
les compromis et à relativiser les problèmes.

Contenu connexe

Tendances

rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
Siwar GUEMRI
 
Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEE
Oussama Djerba
 
rapport de stage
rapport de stagerapport de stage
rapport de stage
Marouane Gh
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Riadh K.
 

Tendances (20)

Rapport stage pfe
Rapport stage  pfe Rapport stage  pfe
Rapport stage pfe
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étude
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
 
Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEE
 
Rapport de stage de perfectionnement - Mahmoudi Mohamed Amine
Rapport de stage de perfectionnement - Mahmoudi Mohamed AmineRapport de stage de perfectionnement - Mahmoudi Mohamed Amine
Rapport de stage de perfectionnement - Mahmoudi Mohamed Amine
 
Soutenance mémoire de fin d'études
Soutenance mémoire de fin d'étudesSoutenance mémoire de fin d'études
Soutenance mémoire de fin d'études
 
Rapport De PFE
Rapport De PFERapport De PFE
Rapport De PFE
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatique
 
Projet de fin d'etude gestion informatique
Projet de fin d'etude gestion informatiqueProjet de fin d'etude gestion informatique
Projet de fin d'etude gestion informatique
 
Présentation de mon PFE
Présentation de mon PFEPrésentation de mon PFE
Présentation de mon PFE
 
Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...
 
rapport de stage
rapport de stagerapport de stage
rapport de stage
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
Rapport de PFE
Rapport de PFERapport de PFE
Rapport de PFE
 
Modele rapport pfe esprit
Modele rapport pfe  espritModele rapport pfe  esprit
Modele rapport pfe esprit
 

Similaire à Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education

Création de-pages-web-pour-les-branches-de-la-faculté-de-génie
Création de-pages-web-pour-les-branches-de-la-faculté-de-génieCréation de-pages-web-pour-les-branches-de-la-faculté-de-génie
Création de-pages-web-pour-les-branches-de-la-faculté-de-génie
Dany Rabe
 
Les outils web 2.0 comme vecteurs d’apprentissage
Les outils web 2.0 comme vecteurs d’apprentissageLes outils web 2.0 comme vecteurs d’apprentissage
Les outils web 2.0 comme vecteurs d’apprentissage
@b_porlier
 
Collecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centraleCollecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centrale
oussama Hafid
 
CIAN-David_Compte_Rendu_PP
CIAN-David_Compte_Rendu_PPCIAN-David_Compte_Rendu_PP
CIAN-David_Compte_Rendu_PP
David Cian
 
Hamdaoui abdelilah
Hamdaoui abdelilahHamdaoui abdelilah
Hamdaoui abdelilah
Moez Moezm
 

Similaire à Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education (20)

PFE::Conception et développement du Back Office d'une application mobile de g...
PFE::Conception et développement du Back Office d'une application mobile de g...PFE::Conception et développement du Back Office d'une application mobile de g...
PFE::Conception et développement du Back Office d'une application mobile de g...
 
Rapport stage
Rapport stageRapport stage
Rapport stage
 
Création de-pages-web-pour-les-branches-de-la-faculté-de-génie
Création de-pages-web-pour-les-branches-de-la-faculté-de-génieCréation de-pages-web-pour-les-branches-de-la-faculté-de-génie
Création de-pages-web-pour-les-branches-de-la-faculté-de-génie
 
Création de-pages-web-pour-les-branches-de-la-faculté-de-génie
Création de-pages-web-pour-les-branches-de-la-faculté-de-génieCréation de-pages-web-pour-les-branches-de-la-faculté-de-génie
Création de-pages-web-pour-les-branches-de-la-faculté-de-génie
 
Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Rapport de pfe format doc 2013
Rapport de pfe format doc 2013
 
Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop
 
Les outils web 2.0 comme vecteurs d’apprentissage
Les outils web 2.0 comme vecteurs d’apprentissageLes outils web 2.0 comme vecteurs d’apprentissage
Les outils web 2.0 comme vecteurs d’apprentissage
 
Collecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centraleCollecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centrale
 
Rapport PFE - B.Sc IT
Rapport PFE -  B.Sc ITRapport PFE -  B.Sc IT
Rapport PFE - B.Sc IT
 
Développement d'un forum de discussion
Développement d'un forum de discussionDéveloppement d'un forum de discussion
Développement d'un forum de discussion
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment system
 
portail_captif.pdf
portail_captif.pdfportail_captif.pdf
portail_captif.pdf
 
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
 
Tpe nguyen tien-thinh
Tpe nguyen tien-thinhTpe nguyen tien-thinh
Tpe nguyen tien-thinh
 
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
 
IntenrnshipMyApp
IntenrnshipMyAppIntenrnshipMyApp
IntenrnshipMyApp
 
Rapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdfRapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdf
 
458008733-Rapport-de-projet-de-fin-d-etudes.pdf
458008733-Rapport-de-projet-de-fin-d-etudes.pdf458008733-Rapport-de-projet-de-fin-d-etudes.pdf
458008733-Rapport-de-projet-de-fin-d-etudes.pdf
 
CIAN-David_Compte_Rendu_PP
CIAN-David_Compte_Rendu_PPCIAN-David_Compte_Rendu_PP
CIAN-David_Compte_Rendu_PP
 
Hamdaoui abdelilah
Hamdaoui abdelilahHamdaoui abdelilah
Hamdaoui abdelilah
 

Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education

  • 1. Institut Supérieur des Études Technologiques De Mahdia Département Technologies de l’Informatique Rapport de Mini Projet Sujet : Elaborer un moteur de Recherche spécialisé en Education Elaboré par : Mohamed Amine Mahmoudi & Zied Cherif Soutenu le 06/01/2016 ©Année Universitaire 2015-2016©
  • 2. Remerciements Je remercie Dieu, le Tout Puissant, le Miséricordieux, qui nous a donné l’opportunité de mener à bien ce travail. C’est avec un grand plaisir que, j’adresse mes sincères remerciements à l’égard de notre enseignante Mme CHABBI IKRAM, qui n’a ménagé aucun effort pour la bonne réussite de ce travail. Merci à messieurs les membres du jury pour l’attention qu’ils ont bien voulu accorder à mon travail et pour le temps consacré à son évolution. Merci à mes amis qui n’ont pas ménagé leur temps pour m’aider à collecter certaines données. Je réserve une pensée spéciale à tous les enseignants de l’Institut Supérieur des études Technologiques de Mahdia qui ont su nous donner une formation didactique et appréciable durant tout notre cursus, à la promotion Licence Applique en Informatique pour la sagesse qu’elle a fait preuve. Ce geste sera gravé à jamais dans nos mémoires. Je ne terminerai pas sans avoir exprimé des remerciements envers toutes les personnes qui ont contribué de près ou de loin à la réalisation de ce projet.
  • 3. Sommaire Introduction Générale .............................................................................................................................1 Chapitre 1 : Notations Théoriques ..........................................................................................................2 I. Introduction..........................................................................................................................2 1. Présentation de l’Api Lucene .........................................................................................2 2. Fonctionnement de Lucene............................................................................................2 II. L’api Lucene ..........................................................................................................................3 III. Java .......................................................................................................................................3 IV. Conclusion.............................................................................................................................4 Chapitre 2 : Spécifications des besoins...................................................................................................5 I. Introduction..........................................................................................................................5 II. Besoins fonctionnels.............................................................................................................5 III. Besoins non fonctionnels......................................................................................................5 IV. Diagramme de cas d’utilisation ............................................................................................5 1. Présentation des acteurs................................................................................................6 2. Présentation graphiques................................................................................................6 3. Description des cas d’utilisation.....................................................................................7 V. Conclusion.............................................................................................................................7 Chapitre 3 : Conception...........................................................................................................................8 I. Introduction.........................................................................................................................8 II. Diagramme de séquence .....................................................................................................8 III. Diagramme de classe...........................................................................................................8 IV. Conclusion............................................................................................................................8 Chapitre 4 : Réalisation............................................................................................................................9 I. Introduction.........................................................................................................................9 II. Environnements de développement ...................................................................................9 III. Taches effectuée..................................................................................................................9 1. L’installation d’API Lucene et configurations ......................................................................9 2. Interface Homme Machine (IHM)..................................................................................... 10 IV. Conclusion......................................................................................................................... 12 Conclusion............................................................................................................................................. 13
  • 4.
  • 5. Mini Projet A.U 2015/2016 Page 1 Introduction générale Etant donné le nombre de pages web présentes pour le Web, il est nécessaire d'utiliser un outil pour rechercher une ou plusieurs pages spécifiques correspondant à des critères de recherche notamment le moteur de recherche. La recherche en ligne est rendue complexe par l'abondance et l'hétérogénéité des ressources disponibles sur le net. Ces dernières années, les méthodes et les outils de recherche ont évolués et se sont complexifiés face aux attentes de plus en plus diversifiées des utilisateurs et au développement du net. Un moteur de recherche est un outil permettant de trouver des ressources (pages, images, vidéos...) en saisissant un ou des mots clés. Cet outil peut être soit une application destinée à faciliter la recherche à l’intérieur d’un site soit un site web complet permettant de fouiller l’ensemble (ou en tout cas une part importante) des ressources du net. Le moteur de recherche est aujourd'hui l'outil le plus utilisé. Un moteur de recherche généraliste permet à l’internaute de chercher des informations dans tous les domaines, grâce à des requêtes par mots clés. D’autre part, il existe des moteurs de recherches spécialisés (également appelé moteur de recherche vertical) procède selon un mode opératoire identique, sinon qu’il limite ses recherches :  à un type particulier de documents (vidéos, images, articles de blog…)  à une thématique précise ou un domaine d’activité en particulier éducation, sciences, e-commerce, produits high-tech... Aujourd’hui, il existe de plus en plus des moteurs de recherche de plus en plus spécialisé, cette spécification rendre le recherche très pratique pour l’internaute. Dans ce cadre s’inscrit notre mini projet qui a pour objectif d’élaborer un moteur de recherche spécialisé dans l’éducation.
  • 6. Mini Projet A.U 2015/2016 Page 2 Chapitre1 Chapitre 1 : Notion Théorique Chapitre2 I. Introduction Avant de commencer le travail, nous présentons quelques notions théoriques utilise dans mon stage. Tout d'abord, nous identifions les mots importants, Cela m'a aidé à compléter le travail requis et les mots techniques au cadre de stage. II. L’api Lucene 1. Présentation de l’API Lucene Chapitre3 Il y a plusieurs couches technologiques nécessaires à la mise en œuvre d'un moteur de recherche d'information. Chaque couche propose des technologies propriétaires ou open source, et même dans l'open source, plusieurs projets proposent des fonctionnalités similaires. Nous nous concentrons sur un sous-ensemble de ces technologies open source, celles que nous considérons comme étant les plus pertinentes pour le monde de l'entreprise. Chapitre4 Lucene est un moteur de recherche libre écrit en Java qui permet d’indexer et de rechercher du texte. C’est un projet open source également disponible pour les langages Ruby, Perl, C++, PHP. Il existe aussi une implémentation pour C# et .NET. Chapitre5 Lucene est un moteur de recherche open source créé par la fondation Apache. Il sert à rechercher dans une quantité très importante d'information textuelle, un peu comme le font les moteurs de recherche internet telle que Google, Yahoo ou Bing. Lucene vous permet de créer rapidement des moteurs de recherche au sein d’applications Java. Le noyau, la base de tout, c'est Lucene, un projet Apache. C'est une API (à l'origine en Java), qui se concentre sur le moteur de recherche proprement dit:  Analyser les données entrantes.  Indexation.  Analyser les requêtes utilisateurs.  Chercher les documents pertinents.  Renvoyer classés. 2. Fonctionnement de Lucene Chapitre6 L'intérêt de ce programme est qu'il est conçu pour rechercher dans du texte, chose pour
  • 7. Mini Projet A.U 2015/2016 Page 3 laquelle ne sont pas conçues les bases de données tel que MySQL (même s’il y a des fonctions qui s'en rapprochent comme les index fulltext MySQL). Chapitre7 Chapitre8 Lucene agit en quelque sorte comme une couche intermédiaire entre les données à indexer et vos programmes. Pour ce faire, il indexera des objets appelés des documents et, à partir des index, il permettra une recherche rapide et efficace dans ces documents. Chapitre9 Il n'y a pas de contraintes techniques importantes, Lucene peut être utilisé pour créer un moteur de recherche sur un site web, ou comme moteur de recherche de documents dans une entreprise. Le principe est simple : dans un premier temps, Lucene va lire tout le contenu dans lequel vous souhaitez recherche (par exemple : toutes les pages d'un site internet), c'est ce qu'on appelle l'indexation. Ensuite, on va pouvoir interroger Lucene, qui va alors analyser la requête (le texte recherché, comme sur Google), et utiliser son index pour ressortir les pages qui correspondent le mieux à la recherche. Chapitre10 On communique avec Lucene via une API (généralement sous forme de web services : XML, JSON...), depuis n'importe quel langage : PHP, Python, Ruby.  Concurrent de Lucene Chapitre11 Parmi les concurrents de Lucene, on trouve notamment Google Search Appliance (GSA) : il s'agit d'un serveur loué par Google qui utilise un algorithme de recherche gardé secret pour indexer des données. C'est une sorte de boite noire : on ne sait pas ce qu'il y a à l'intérieur, on l'utilise via son interface de programmation en lui donnant la liste des contenus (par exemple une liste d'URL) à indexer. Chapitre12 Sphinx est un autre concurrent de Lucene, il est gratuit et open source et codé en C++ (pas besoin de Java comme Lucene). Sphinx est utilisé par des sites à fort trafic comme Daily motion ou The Pirate Bay. III. Java Le langage Java est un langage de programmation informatique orienté objet créé par James Gosling et Patrick Naughton, employés de Sun Microsystems, avec le soutien de Bill Joy (cofondateur de Sun Microsystems en 1982), présenté officiellement le 23
  • 8. Mini Projet A.U 2015/2016 Page 4 mai 1995 au SunWorld. La société Sun a été ensuite rachetée en 2009 par la société Oracle qui détient et maintient désormais Java. IV. Conclusion Chapitre13 En conclusion, nous avons présenté l’Api Lucene qui est le cœur de notre moteur de recherche ainsi on a présenté le langage utiliser pour le développement de notre moteur de recherche.
  • 9. Mini Projet A.U 2015/2016 Page 5 Chapitre14 Chapitre 2 : Spécification des besoins I. Introduction Notre moteur de recherche spécialisée en éducation permet à l’internaute d'effectuer des recherches sur les blogs, les forums ou les listes de diffusion. Ils permettent également de cibler les recherches sur les actualités. Deux catégories de besoins auquel l’application doit répondre :  Des besoins fonctionnels.  Des besoins non fonctionnels. II. Besoins fonctionnels Parmi les besoins indispensables auxquels doit répondre l’application :  La pertinence des résultats.  Facilité d’écrire dans barre de recherche affichage des suggestions.  La recherche avancée ont ajoutent la date, lieu, durée, personne …etc.  Pagination les résultats.  L’indexation des pages.  Trier des résultats.  Saisir des mots clés. III.Besoins non fonctionnels Ce sont les besoins qui permettraient d’améliorer la qualité des services de notre moteur de recherche comme :  L’accélération de manipulation de l’application.  Fiabilité.  Ergonomie des interfaces.  Compatibilité et portabilité.  Options des recherches.  Organisation les résultats. IV.Diagrammes de cas d’utilisation
  • 10. Mini Projet A.U 2015/2016 Page 6 Le diagramme des cas d’utilisations décrit le comportement du système du point de vue utilisateur sous forme d’actions et de réactions. Il existe deux concepts fondamentaux dans la modélisation par les cas d’utilisations:  Les acteurs qui agissent sur le système.  Les cas d’utilisations qui représentent les façons dont le système est manipulé par les acteurs. A. Le cas d’utilisation : «Rechercher » 1. Présentation des acteurs Acteur principal : l’Internaute (Professeur, Administrateur, Technicien et Etudiant) 2. Présentation Graphique Figure 1 : Diagramme de cas d’utilisation
  • 11. Mini Projet A.U 2015/2016 Page 7 3. Description des cas d’utilisation Après le lancement de notre moteur de recherche l’utilisateur a la possibilité de saisir le mot après une page de résultat s’affiche ce dernier contient la liste des liens correspondant à la mot clés saisie. V. Conclusion Dans ce chapitre, on a essayé de citer quelques fonctionnalités auquel notre moteur de recherche doit répondre pour que notre internaute avoir des résultats
  • 12. Mini Projet A.U 2015/2016 Page 8 Chapitre 4 : Conception I. Introduction Ce chapitre a pour objectif de présenter la solution conceptuelle proposée. En d’autres termes, ce chapitre devrait répondre à la question comment faire. La conception est décrite par un ensemble de diagrammes relevant soit du langage de modélisation UML. II. Diagramme de séquence III. Diagramme de classe IV. conclusion En clair, comme nous venons de le voir, ce chapitre était consacré, à la conception des diagrammes, de séquence qui nous ont permis de dégager l'architecture générale de notre application représentée ici par ce diagramme de classe qui nous renseigne sur la relation homme Machine de notre application qui sera détaillée dans le prochain chapitre.
  • 13. Mini Projet A.U 2015/2016 Page 9 Réalisation I. Introduction Dans ce chapitre, nous présentons l'architecture sur laquelle nous avons développé notre application, les différents outils utilisés ainsi que les composantes applicatives réalisées. II. Environnements des développements C’est un ensemble d'outils pour augmenter la productivité des programmeurs qui développent des logiciels. Il comporte un éditeur de texte destiné à la programmation, des fonctions qui permettent, par pression sur un bouton, de démarrer le compilateur ou l'éditeur de liens ainsi qu'un débogueur en ligne, qui permet d'exécuter ligne par ligne le programme en cours de construction. Certains environnements sont dédiés à un langage de programmation en particulier. Les outils nécessaires sont :  JDK  IDE  API Lucene III. Taches Effectué 1. L’installation d’API Lucene et Configuration Lucene appartient au fameux projet Jakarta de la fondation Apache, bien connu pour ses outils tels que Struts ou Tomcat. Cette API écrite en Java se destine à la création de puissants moteurs de recherche orientés texte. Parmi les nombreuses qualités de cette bibliothèque, nous retiendrons essentiellement sa rapidité d'exécution et sa simplicité d'utilisation, tant pour le programmeur que pour l'utilisateur final. La découverte de Lucene se déroulera en deux temps. En premier lieu, nous apprendrons à créer un index à partir de nos documents, pour ensuite soumettre des requêtes au moteur. L'application que nous allons étudier, intitulée WebIndex, permet l'indexation d'un document HTML déterminé par une URL. Lien de Téléchargement : http://jakarta.apache.org/lucene
  • 14. Mini Projet A.U 2015/2016 Page 10 Figure 2 : Importation des bibliothèques d’API Lucene 2. Interface Homme Machine(IHM) Figure 3 : interface principale de notre moteur
  • 15. Mini Projet A.U 2015/2016 Page 11 Figure 4 : les menus Figure 5 : Messages d’Erreur
  • 16. Mini Projet A.U 2015/2016 Page 12 Figure 6 : Résultat de Recherche Figure 7 : Enregistrement les Résultats Figure 8 : ouvrir un fichier de Recherche IV. Conclusion L’activité d’implémentation était la plus délicate dans le développement de notre application. Enfin, nous nous intéressons à tester l’application en réseau.
  • 17. Mini Projet A.U 2015/2016 Page 13 Conclusion générale Ce travail a été réalisé dans le cadre de notre mini projet de un mois au sein de Institut Supérieur des Etudes Technologique de Mahdia Durant notre stage nous a été bénéfique bien sur le plan théorique que pratique. En effet, sur le plan théorique, nous avons acquis des notions sur la spécification Lucene, et les différentes méthodes permettant de l’implémenter. Sur le plan pratique, nous avons eu l’opportunité de mettre en œuvre le processus unifié et de découvrir les technologies de pointe utilisées dans l’élaboration des applications mobile, à savoir la plateforme Eclipse Par ailleurs, nous avons eu l’occasion d’exploiter au mieux les outils de conception tels qu’UML et pour l’élaboration des différents diagrammes. Finalement, comme tout projet, le nôtre présente quelques insuffisances que nous pouvons les combler et des imperfections auxquelles on peut remédier. Mais, nous estimons avoir répondu à la majorité des exigences de cahier des charges ; Ce qui nous mène à certaines constatations concernant l’estimation du temps nécessaire à la réalisation. D’autre part, ce travail nous a appris la prise de conscience de nos prochaines obligations outre l’apport technique que nous avons récolté, et malgré les obstacles que nous avons rencontrés, nous avons appris à accepter les compromis et à relativiser les problèmes.