Mini projet pour élaborer un moteur de Recherche spécialisé en Education avec l'api lucene, java, swing etc ...
le mini projet a été réalisé à l'institut supérieur d'études Technologiques de Mahdia
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
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.