Previous Next Table of Contents

3. Quel moteur de recherche peut permettre une recherche multiplateforme

3.1 Problème

Aucune des solutions libres essayées ne correspond aux besoins du projet. Zope ne permet pas d'accéder aux fichiers HTML sans passer par un serveur WEB. Htdig et glimpse utilisent des formats binaires pour leurs exécutables et leur base d'indexation.Si on les utilisait alors nous serions limité par le format de la base d'indexation et au système pour lequel le logiciel a été prévu. . Le problème est simplement qu'il n'existe pas une solution parfaite répondant à nos besoins.

3.2 La base d'indexation : vers une solution multiple.

Les moteurs de recherche se base sur une base d'indexation. Entendez "base d'indexation" par un espace ou l'on change d'une certaine facon les données relative à l'indexation.

Si on admet qu'une solution universelle n'existe pas, plusieurs logiciels répondant à un problème bien précis pourraient répondre à nos besoins. Cela peut être un fichier ou plusieurs fichiers , une base de donnée etc.

Un des éléments importants est le format de la base d'indexation. L'utilisation de format binaire généré par htdig ou glimpse peuvent demander trop de temps de développement. De plus nous ne savons pas quelles informations sont dans ces bases, ce qui rend l'administration un peu plus difficile.

3.3 Nos besoins

Cette section recense l'ensemble de nos besoins pour faire un CD de documentation exploitable de suite et par tous.

3.4 Une solution multiple.

Beaucoup de personne pourraient me rétorquer que la solution serait d'adopter une solution WEB. C'est en partie vrai, mais ce n'est pas une solution complète. La personne ne poccedant pas de pile TCP/IP ne pourra pas profiter pleinement du cd de documentation. Si l'on désire inclure plusieurs programmes répondant chacun à une configuration il est néssecaire que ces derniers partagent l'accès à une même base d'indexation. En imaginant un logiciel créant une base d'indexation avec un format très simple , nous pourrions ainsi créer un ensemble de logiciel de recherche permettant l' exploitation des documentations sur tous systemes et sous plusieurs configurations ( texte et graphique ). On déplace ainsi le problème du logiciel vers la base d'indexation.

3.5 Convention et Elimination de mots des plus fréquents

Définition d'un mot.

Un mot peut etre dénifit par l'expression régulière suivante: (a-zA-Z)("_"|"."|"@"|a-zA-Z0-9)+ J'espere ne pas avoir fait d'erreur :(. Donc un mot ne peut être : un nombre, un seul caractère, un tag HTML, et autres bizaries. Par contre,cela peut être une adresse email, une adresse internet

Il est évident que les mots doivent être indexé sous forme minuscule ou majuscule mais pas les deux. De même les mots qui se trouve dans tous les pages seront considèrer comme du bruit (par exemple sur les HOWTO anglais le mot "for" est dans toutes les pages). C'est un non sens de garder un mot qui pourra donner si on le recherche tous les documents. On peut donc l'éliminer de l'ensemble des mots à indexer.

De plus on peut élimine les mots de un caractères ainsi que les mots nombres. Après l'indexation des mots, on obtiens une liste, noté LISTE, ayant pour élément le nom et la liste des documents qui contiennent ce mot. Celle ci sera apellé INDEXLIST. si la longeur de INDEXLIST est supérieur à LISTE/N alors il faut éliminer ce mot de l'indexation. C'est la valeur de N qui est a déterminer.

Voici quelques résultats sur les HOWTO anglais.

Nombre de mots : 72261 Nombre de mots avec length(LISTINDEX)==1: 55236 Nombre de mots avec length(LISTINDEX) supérieur LISTINDEX/2: 3285 Pour 92 Mo 2 Mo pour l'indexation sans élimination 1.1Mo avec élimination. Voici la liste de repartition des mots: Le premier élément de la liste indique qu'il y a 55235 mots qui sont uniquement que dans un seul document. Le deuxième élément lui , montre qu'il y a 6568 mots qui sont dans deux documents. etc.

Cependant nous avons pris en compte les mots de 1 caracteres ainsi que les nombres L'ensemble des mots éliminés doivent être conservé pour ne pas différentier un mot non trouvé d'un mot omniprésent.

Indexation de la position des mot dans le fichier d'indexation

Le fichier d'indexation est important lorsque l'on veux indexer beaucoup de document ( exemple pour 14261 fichiers html , l'index a pour taille : 26 M ). Ce n'est pas considérable par rapport à la taille des fichiers html , cependant c'est énorme si l'on veux manipuler ce fichier pour des recherches. C'est pourquoi l'idée m'est venu de faire un fichier contenant l'emplacement dans le fichier pour les lettres ( a , b , c ...) .

En faisant ceci, nous limiterons la recherche à des mots ayant comme prefix le mot passant dans la requête. Exemple :

ftp : document trouvés:ftp , ftpaccess , ftpmail, ftpoptions...

document ignorés : anonftp,appftp, autoftp

Ce n'est peut etre pas un mal ...?

Limite de ce système ( mot composé )

Le français comme beaucoup d'autres langues poccedent des mots composés.

Par exemple :

C'est à dire un ensemble de mots dont le sens ne peut etre déduit à partir de chacun des mots de cet ensemble. Etant donné que nous ne gardons pas la position des mots dans le texte, il sera impossible de retrouver la sequence exacte cordon bleu par exemple. Ceci est un probléme avec notre système, il faut l'avoir à l'esprit.


Previous Next Table of Contents