Retrouvez cet article dans : Linux Magazine 78
Introduction
Peut-être vous êtes vous déjà retrouvé dans la situation de devoir rechercher des informations sur un sujet particulier. Vous êtes donc allé sur votre moteur de recherche préféré et avez saisi votre requête. Et en consultant les résultats de recherche, vous vous êtes rendu compte que la majorité des modules répondant à votre question étaient déjà installés sur votre machine. Il aurait donc été utile de pouvoir en premier lieu interroger un moteur de recherche local pour votre documentation Perl. Et bien, ce moteur de recherche existe déjà , et il est l’œuvre d’Ulrich Pfeifer et se nomme tout naturellement perlindex. Ce dernier est bien entendu disponible sur le CPAN, à l’adresse suivante
http://search.cpan.org/dist/perlindex/
Installation
Après avoir installé ce script (avec l’incantation classique
perl Makefile.PL,
make test,
make install), il est nécessaire de construire l’index. Pour cela, il suffit de taper, en tant que root la commande suivante perlindex -index. Cette commande va parcourir les répertoires où se trouve la documentation et en indexer les fichiers .pm et .pod.
Utilisation
L’utilisation classique de ce programme est donc l’interrogation, qui s’effectue en passant les mots-clés en argument au programme. Ainsi, si je souhaite trouver un moyen d’obtenir le texte d’un fichier HTML, je peux interroger le système de la manière suivante
perlindex strip tag html. Cela nous donne l’écran suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
$ perlindex strip tag html
1 5.454 share/perl5/HTML/TokeParser/Simple.pm
2 4.051 share/perl5/HTML/LinkExtractor.pm
3 4.034 share/perl5/HTML/TokeParser/Simple/Token/Tag/Start.pm
4 4.034 share/perl5/HTML/TokeParser/Simple/Token/Tag/End.pm
5 4.017 share/perl5/HTML/Tree/Scanning.pod
6 3.867 share/perl5/HTML/TokeParser/Simple/Token/Tag.pm
7 3.562 share/perl5/HTML/TreeBuilder.pm
8 3.316 bin/dh_strip
9 3.282 share/perl5/MARC/File/USMARC.pm
a 3.282 share/perl5/Mail/Header.pm
b 3.191 share/perl5/HTML/TokeParser/Simple/Token/Text.pm
c 3.093 share/perl5/HTTP/Proxy/BodyFilter/tags.pm
d 2.856 share/perl5/HTML/Parse.pm
e 2.841 share/perl5/HTML/Tagset.pm
f 2.770 share/perl5/HTML/TokeParser/Simple/Token/ProcessInstruction.pm
Enter Number or ‚q‘> |
Et en consultant la documentation du premier module, donc
, HTML::TokeParser::Simple, j’obtiens un exemple sur la manière de procéder.
Comme vous pouvez le constater, les résultats sont classés en fonction de leur pertinence (utilisation du TF-IDF, Term Frequency - Inverse Document Frequency, classique dans le domaine de l’information retrieval)
Autres options du programme
Les options suivantes sont également disponibles, bien que non documentées par le programme :
Permet de limiter le nombre de résultats de recherche à n documents.
En combinaison avec l’option
index, demande au programme d’être plus bavard.
Cette option spécifie le chemin où les index doivent être créés lors de l’indexation. Par défaut, les index se trouvent dans le répertoire /usr/share/man, mais cela nécessite que cela soit l’utilisateur root qui se charge de la mise à jour de cet index (si vous installez régulièrement des nouveaux modules, il est nécessaire de lancer perlindex -index régulièrement également). Si vous décidez d’utiliser cette option, ne pas oublier de la spécifier également lors de la recherche.
Cette option permet d’afficher les mots-clés présents dans l’index. Si vous spécifiez un seuil n à l’option, il filtrera les mots-clés, et
n’affichera que les termes dont la fréquence est supérieure à n. Ainsi, sur ma machine,
perlindex -dict 1500 affiche
|
|
head 2480
author 1829
cut 2021 |
Cela illustre un problème lors de l’indexation des fichiers POD.
Conclusion
Ce programme n’est pas parfait, mais il est d’une aide certaine lorsqu’il s’agit de se débrouiller avec ce que l’on a. Il m’est souvent bien utile pour retrouver la bonne page dans toute la documentation disponible.