Vous êtes sur la page 1sur 18

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

Conclusion............................................................................................................................................. 13
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
Mini Projet

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

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.

A.U 2015/2016
Page 1
Mini Projet

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


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

A.U 2015/2016
Page 2
Mini Projet

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 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

A.U 2015/2016
Page 3
Mini Projet

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.

A.U 2015/2016
Page 4
Mini Projet

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é


moteur de recherche comme :
L’accélération de manipulation de l’application.
Fiabilité. des services de notre
Ergonomie des interfaces.
Compatibilité et portabilité.
Options des recherches.
Organisation les résultats.

IV. Diagrammes de cas d’utilisation

A.U 2015/2016
Page 5
Mini Projet

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

A.U 2015/2016
Page 6
Mini Projet

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

A.U 2015/2016
Page 7
Mini Projet

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.

A.U 2015/2016
Page 8
Mini Projet

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
Taches Effectué
III. 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 :

A.U 2015/2016
Page 9
Mini Projet

Figure 2 : Importation des bibliothèques d’API Lucene

2. Interface Homme Machine(IHM)

Figure 3 : interface principale de notre moteur

A.U 2015/2016
Page 10
Mini Projet

Figure 4 : les menus

Figure 5 : Messages d’Erreur

A.U 2015/2016
Page 11
Mini Projet

Figure 6 : Résultat de Recherche Figure 7 : Enregistrement


les Résultats

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.

A.U 2015/2016
Page 12
Mini Projet

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.

A.U 2015/2016
Page 13

Vous aimerez peut-être aussi