j'aurais besoin d'aide pour commencer mon projet
En espérant que vous puissiez m'apporter une aide.
PS :les interfaces imposées sont jointes au message
Merci par avance
Citation :
Description du Projet
Le programme Foogle (foo-google) est un programme qui crée un index à partir d'un fichier et qui permet de faire des requètes de recherche de mots en utilisant les opérateurs ET et OU pour trouver l'ensemble des lignes satisfaisant la requète.
Ligne de Commande du Logiciel
Le logiciel doit se présenter sous la forme d'un jar exécutable.
La ligne de commande permet de créer l'index ou d'effectuer des requètes sur un
index déjà crée
java -jar foogle.jar [index|query] [option spécifique dépendant de index ou query] index :
java -jar foogle.jar index [-strategy name] [-minlength length]fichier.ext crée un index à partir d'un fichier.ext, le nom du fichier sera fichier.ext.idx -minlength indique le nombre de lettre minimum du mot pour qu'il appartienne
à l'index.
-strategy permet de spécifier une stratégie de contexte par son nom.
Le contexte correspond aux mots avant et après un mot recherché.
(par défaut: none)
La stratégie "none" indique que le contexte (la ligne ou une partie de la ligne n'est pas stockée dans l'index.
La stratégie "near" indique que le contexte correspond au mot précédent ainsi qu'au mot suivant le mot courant.
Exemple de résultat avec un contexte "near", avec le fichier :
hello toto how are you ?
well, i'm fine, well Dee fine.
Pour la requète toto & how (les contextes sont agglomérés):
line 1: hello toto how are
Pour la requète fine (le mots fine est présent plusieurs fois):
line 2: well fine well ... Dee fine
De façon optionnel vous pouvez ajouter un contexte intelligent.
query : java -jar foogle.jar query [-n count] fichier.ext.idx expr effectue une requète expr sur l'index fichier.ext.idx et affiche l'ensemble
des lignes satisfaisant la requète.
-n permet de spécifier le nombre de résultat voulu.
Les requètes sur l'index correspond à un arbre au format préfixé,
exemple "& toto | titi @t?t?" est équivalent à l'arbre
&
toto |
titi @t?t?
L'opérateur ET ('&') reporte la ligne uniquement si les deux mots
appartiennent à la ligne.
L'opérateur OU ('|') reporte la ligne si un des deux mots appartient
à la ligne.
L'opérateur @ permet d'indiquer une expression régulière (au format PERL) pour rechercher les mots.
De façon optionnel, il est possible dans le cas des OU lorsque l'on fixe le
nombre de résultat voulu de ne pas calculer l'ensemble de tous les résultats
possibles. De plus, lors de requète concernant beaucoup de résultat possible, il est possible de manipuler des itérateurs plutôt que des listes pour éviter d'avoir de grosses structures de données intermédiaires.
Architecture du Logiciel
Pour vous aidez et nous permettre de tester automatiquement votre logiciel,
un ensemble d'interface est imposée, vous ne devez en aucun cas toucher leur code.
Exemples d'utilisation des interfaces :
Création d'un index :
Code :
FoogleFacade foogle=new FoogleFacadeImpl();
ContextStrategy contextStrategy=
foogle.getContextStrategyMap().get("none" );
Index index=foogle.createIndex(
new File("bbe.txt" ),contextStrategy);
foogle.saveIndex(index,new File("bbe.idx" ));
Recherche dans un index :
Code :
Index index2=foogle.loadIndex(new File("bbe.idx" ));