|
Qu'est ce que Ht://Dig ?
Ht://Dig est un logiciel d'indexation et de recherche de documents
par mots-clefs dans un site web. C'est typiquement le genre de logiciel
qui est utilisé lorsqu'un site offre des fonctionalités
du type "rechercher sur ce site" ou "search this site",
etc... Ht://Dig se distingue des autres logiciels du même genre
en étant un logiciel libre distribué sous licence GPL
(GNU General Public Licence) et aussi en étant l'un des plus
performants. Il est de ce fait le moteur de recherche favori des distributions
de Linux, FreeBSD, etc... et est utilisé par de nombreux sites,
dont quelques très gros sites. Voir http://www.htdig.org/
pour en savoir plus.
Qu'est ce qui fait qu'Ht://Dig est adapté
à une langue ou à une autre ?
Le moteur d'indexation et de recherche d'Ht://Dig est indifférent
au langage utilisé, mais sa configuration ne l'est pas. Ht://Dig
utilise en effet quelques fichiers annexes et des paramètres
de configuration qui permettent de l'adapter à une langue ou
à une autre. Pour qu'Ht://Dig puisse fonctionner correctement
avec la langue française, il faut substituer une version française
de certains fichiers à ceux de la version anglaise par défaut
et adapter le fichier de configuration.
Où se procurer les fichiers nécessaires
?
Lorsque j'ai voulu utiliser Ht://Dig sur un site en français,
je me suis aperçu que ce n'étais pas si simple que ça
et qu'il n'existait pas de kit de francisation établi qui puisse
être utilisé tel quel. Etant du genre têtu et curieux,
j'ai entrepris de creuser la question en explorant les mailing-lists,
en rassemblant divers fichiers et en faisant des essais sous Linux ...
et la persévérance a fini par être avantageuse,
puisque je suis effectivement arrivé au bout de quelques essais
à faire fonctionner correctement Ht://Dig en français.
Grâce à ce challenge de mon ego d'informaticien par une
nature récalcitrante, vous pouvez désormais bénéficier
d'un kit de francisation dûment documenté:
Alternativement, il existe une version RPM, qui
facilite l'installation sous Linux.
Pour quelle version d'Ht://Dig le kit a t'il
été conçu ?
Le kit a été initialement conçu et testé
pour la version 3.1.4, qui était la dernière version stable
à cette époque. Son bon fonctionnement a été
re-vérifié depuis avec les versions 3.1.5 et 3.1.6. Il
est cependant possible qu'il fonctionne également avec d'autres
versions, tel quel ou moyennant quelques adaptations.
Appel à contribution: si quelqu'un réalise
des adaptations de ce kit pour d'autres versions, je contribuerai
volontiers à les diffuser.
Que contient le kit de francisation ?
Fichiers à substituer dans ./installdir avant la compilation
et l'installation:
- htdig.conf (fichier de configuration adapté pour
le français - remplace le fichier du même nom)
- rundig (script de lancement de la procédure d'indexation
- remplace le fichier du même nom)
- footer.html, header.html, long.html, nomatch.html, search.html,
short.html, syntax.html, wrapper.html (gabarits d'affichage en
français - remplacent les fichiers de même nom)
Fichiers à rajouter après l'installation, avant de lancer
l'indexation:
- ./common/francais.0 (dictionnaire des mots français
- équivalent de english.0)
- ./common/francais.aff (dictionnaire des terminaisons françaises
- équivalent de english.aff)
- ./common/bad_words.fr (liste de mots à exclure:
articles, adverbes, etc... adaptée au français - équivalent
de bad_words)
- ./common/_synonyms.fr (dictionnaire des synonymes - équivalent
de synonyms)
- ./bin/_trans.pl (script de création d'un dictionnaire
de synonymes non accentués - fichier ajouté)
- ./htdocs/lisezmoi.html: le présent document, qui
tient lieu de documentation du kit
Comment installer Ht://Dig pour le français
?
- Télécharger et déployer le package de la distribution
d'Ht://Dig standard
- Télécharger et déployer le kit
de francisation
- Substituer les fichiers du kit de francisation aux fichiers de la
distribution standard qui sont dans le sous-répertoire ./installdir
- Hormis cette substitution de fichiers, l'installation de la version
française est en tous points identique à celle de la
version anglaise (se référer à la documentation
d'Ht://Dig).
- Rajouter les fichiers du kit de francisation qui ne se sont pas
automatiquement installés dans les bons répertoires
- Lancer rundig pour créer les bases de données
d'indexation
ATTENTION ! Versions antérieures à 3.1.6:
Pour que les caractères accentués soient correctement
reconnus, Ht://Dig doit avoir été (re)compilé avec
le paramètre locale:fr_FR, qui est spécifié
dans la version modifiée d'htdig.conf. Cela suppose
donc que le fichier htdig.conf du kit de francisation ait été
substitué à celui de la distribution standard AVANT la (re)compilation. Cela n'est plus
nécessaire depuis la version 3.1.6.
A propos de certaines variantes de LOCALE
Ci-après extraits de mails de personnes qui ont résolu
les problèmes relatifs à leurs variantes de locale:
"... J'ai bien tout recompilé, mais ça ne marchait
toujours pas. J'ai exécuté la commande locale sur mon
Unix et la j'ai vu que je n'avais pas fr_FR tout seul mais fr_FR.iso88591
ou fr_FR.roman, j'ai donc mis fr_FR.iso88591 dans le paramètre
et là ça fonctionne au niveau de htdig, htmerge et htfuzzy,
par contre j'ai encore des problèmes avec htsearch dans certains
cas. J'ai résolu le problème en positionnant la variable
dans le fichier htdig.conf à fr_FR.iso88591 pour les phases
htdig, htmerge et htfuzzy, mais je la mets en commentaire pour htsearch,
et là tout fonctionne. Je tourne sous HP-UX 10.20 ..."
(François Soupault <fs@sigu7.jussieu.fr>)
"... J'ai réussi et c'était un problème
de "locale" en desaccord entre le système (SUN/Solaris)
et htdig, dans notre cas il fallait locale : fr (tout court) ..."
(Nicolas MARIE <nicolas.marie@meteo.fr>)
Le kit de francisation fonctionne t'il lorsqu'on
fait tourner Ht://Dig sous Win32 ?
Il est possible de faire fonctionner Ht://Dig sous Win32 grâce
à Cygwin, qui émule un environnement de type Unix sous
Win32, mais certaines fonctions spécifiques de l'environnement
Unix ne sont pas reconnues par Cygwin. C'est notamment le cas de "locale",
dont l'absence empêche la prise en compte des caractères
accentués. Cette limitation a peut-être été
levée avec la version 3.1.6, qui intègre une gestion plus
poussée des accents, et/ou avec les versions plus récentes
de Cygwin, mais je n'ai pas encore eu connaissance de portage qui soit
réellement opérationnel sous Win32. Ca parait de toute
façon bien compliqué pour un résultat d'un intérêt
douteux !
Qui a fourni les dictionnaires ?
Les dictionnaires des mots et des terminaisons proviennent du dictionnaire
"ispell" d'IREQ (ftp://ftp.robot.ireq.ca/ispell/francais-IREQ.tar.gz).
Les dictionnaires de la distribution ispell ont été compilés
au moyen de la syntaxe: cat *.dico | sort | uniq > francais.0.
Le fichier des terminaisons francais.aff est réutilisé
tel quel.
Le dictionnaire des synonymes a été fourni par Sébastien
Brize suite à un appel à contribution de ma part.
Ce dictionnaire est "brut de décoffrage", mais utilisable
en l'état par ceux qui veulent s'en servir.
Appel à contribution: si quelqu'un apporte
des améliorations à ce dictionnaire des synonymes, merci
de me les communiquer pour en faire profiter tout le monde.
Comment à été composé
le fichier bad_words.fr ?
Le fichier bad_words.fr a été composé
empiriquement par tests successifs sur un site de taille moyenne, jusqu'à
ce que le fichier db.wordlist ne contienne plus que des mots
utiles:
- lancement de rundig -> indexation
- observations des mots indésirables récupérés
dans db.wordlist
- ajouts de ces mots dans le fichier bad_words.fr
- lancement de rundig -> ré-indexation
- etc...
Appel à contribution: ce fichier est vraisemblablement
améliorable. Toutes les suggestions allant dans ce sens sont
bienvenues.
Quid des synonymes ?
Le dictionnaire des synonymes peut être employé de trois
manières:
- pour étendre automatiquement la recherche à des synonymes
des mots qui ont été entrés; c'est à cela
que peut servir le fichier synonyms.fr du kit; pour activer
ce type d'utilisation, enlever le '_' en tête du nom de fichier
("_synonyms.fr" -> "synonyms.fr")
- pour étendre la recherche à des mots qui s'orthographient
de plusieurs manières; cette approche n'a pas été
implémentée pour l'instant, mais elle mériterait
de l'être
- pour étendre la recherche aux équivalents non-accentués
des mots entrés; c'est à cela que servait le script
trans.pl, jusqu'à ce
que cette fonctionalité soit incluse dans le programme lui-même;
pour activer ce type d'utilisation, enlever le '_' en tête du
nom de fichier ("_trans.pl" -> "trans.pl")
Comment faire en sorte que les caractères
accentués ou non soient équivalents ?
Un patch de Robert Marchand a été intégré
dans la version 3.1.6, qui réalise automatiquement l'équivalence
entre caractères accentués/non accentués dans le
code source d'htfuzzy. Cf: option accents du paramètre
search_algorithm.
Pour les versions antérieures, cela peut être accompli
en constituant un dictionnaire des synonymes où les mots sans
accents figurent en tant que synonymes des mots comportant des accents.
Répondant à mon appel à contribution, Stéphane
Marzloff a réalisé un script (trans.pl) qui
compose un dictionnaire des synonymes non accentués à
partir de db.wordlist. Ce script peut être exécuté
automatiquement grâce à une version adaptée de rundig
(inclus dans le kit).
Que faire des fichiers synonyms.db, word2root.db
et root2word.db en anglais ?
Ces fichiers doivent être remplacés par leur équivalent
en français. Pour cela, il faut effacer ces fichiers *.db
d'origine et lancer une réindexation une fois que les fichiers
du kit de francisation ont été mis dans les bons répertoires.
Le script rundig comporte une procédure qui détecte
l'absence des fichiers *.db et qui les reconstitue automatiquement
à partir des dictionnaires spécifiés.
Pourquoi mes gabarits personnalisés
long.html et short.html ne sont pas pris en compte
?
Les paramètres francisés de template_map dans
le fichier htdig.conf sont positionnés par défaut
pour utiliser les fonctions internes compilées dans le code (builtin-long,
builtin-short). Pour utiliser les gabarits externes à la
place de celles-ci, il convient d'adapter le paramètrage de template_map
en conséquence.
Comment utiliser Ht://Dig sur un site multilingue
?
Dès lors que l'ensemble des caractères utilisés
par les différentes langues est contenu dans un même jeu
de caractères définissable par un même paramètre
de locale, il est théoriquement possible d'utiliser
une même configuration d'Ht://Dig pour l'ensemble du site, toutes
langues confondues (c'est par exemple le cas de l'anglais et du français,
les caractères non-accentués de l'anglais étant
un sous-ensemble des caractères utilisés par le français).
La recherche peut ensuite être conduite dans les répertoires
spécifiques à un langage donné en utilisant la
variable CGI "restrict" dans les pages (ex: <INPUT
TYPE="HIDDEN" NAME="restrict" VALUE="/fr/">).
Par contre, ça se complique fortement lorsqu'il s'agit de gérer
le dictionnaire, les terminaisons (affix), le fichier bad_words
en concordance avec le paramètre valid_punctuation,
et les synomymes. En pratique, cela semble beaucoup plus difficile à
réaliser que de mettre en place une configuration dédiée
à chaque langue, avec ses paramètres et fichiers spécifiques.
Comment faire fonctionner Ht://Dig dans un sous-système
Jail ?
FreeBSD dispose d'une fonctionalité appelée Jail,
qui permet d'emprisonner des sous-systèmes FreeBSD dans un répertoire
du système hôte, ce qui est bien adapté aux hébergements
de sites en serveur virtuel dédié. Les serveurs sous Jail
se comportent "presque" comme des serveurs à part entière.
En ce qui concerne Ht://Dig, le "presque" réside dans
l'impossibilité d'adresser des requêtes HTTP à son
adresse IP depuis l'intérieur du sous-système Jail. Pour
contourner cette petite difficulté, il suffit d'adresser les
requêtes à l'adresse de loopback (127.0.0.1) au lieu de
l'adresse externe du sous-système Jail. Cela peut se faire simplement
en mettant les noms d'hôtes utilisés par le serveur HTTP
en aliases de localhost dans la table /etc/hosts,
ce qui est de toute façon plus performant, indépendamment
des contraintes de Jail, et résoud accessoirement d'autres problèmes
similaires (libwww de Perl notamment). Ex:
127.0.0.1 localhost www.example.org myhost.example.org ...
Ht://Dig francisé en version RPM
Pour faciliter l'installation d'Ht://Dig francisé sous Linux,
Sébastien Gallet
a réalisé une version RPM qui auto-installe l'ensemble:
"... Pour ce qui est de l'installation des rpm, rien de plus
simple :
- On installe les deux rpm de binaires
- On choisit le dictionnaire des synonymes (_synonims.fr ou _trans.pl)
- On met à jour l'URL du site dans le fichier /etc/htdig/htdig.conf.
(mise à jour automatique dans le cas d'une configuration simple)
- rundig et c'est parti
Toute la partie : copie des fichiers, installation du patch et compilation
est gèrée automatiquement par le rpm source...."
Comment proposer des améliorations
du kit de francisation ?
Vous m'écrivez en
décrivant les améliorations que vous suggérez et
en joignant éventuellement les fichiers illustrant le propos
(pas trop gros SVP). Dès que j'ai le temps de m'en occuper, j'essaie
d'évaluer l'utilité et la faisabilité de la proposition
et je vous répond pour dire ce que j'en pense. Si besoin est,
on demande au Ht://Dig Group ce qu'il en pense. Une fois que nous sommes
tombés d'accord sur les améliorations à apporter
au kit, je les incorpore dans une nouvelle version du kit, en mentionnant
votre contribution dans la présente FAQ, et je transmet au d'Ht://Dig
Group la nouvelle version du kit pour qu'elle soit rendue disponible
sur le serveur d'Ht://Dig et dans le CVS.
Qui a contribué à ce kit de
francisation ?
- Le Ht://Dig Group,
en fournissant un logiciel bien conçu et paramétrable
à souhait, et en faisant en sorte que la documentation et les
archives des mailing-lists soient aisés à consulter
- L'auteur du kit de germanisation, en donnant l'exemple
- Didier Lebrun,
en assemblant ce kit et en rédigeant la présente FAQ
- Gilles Detillieux,
en servant d'interface avec le Ht://Dig Group et en prodiguant quelques
bons conseils
- François Soupault
et Nicolas Marie, en relatant
leurs déboires avec locale
- Stéphane Marzloff,
en fournissant le script qui automatise la création d'un dictionnaire
des équivalents non-accentués
- Sébastien Brize, qui
a fourni un dictionnaire des synonymes
- Sébastien Gallet,
qui a réalisé la version RPM
- Tous ceux qui ont adressé des questions, en suscitant des
améliorations à apporter
Historique des modifications
- Version 1.0.1: ajout version adaptée de rundig et
explications concernant la francisation des fichiers *.db
- Version 1.0.2: francisation des options de recherche (variables
$(METHOD), $(FORMAT) et $(SORT)); clarifications
et compléments d'explications (lisezmoi.html)
- Version 1.0.3: ajout du script de création du dictionnaire
des synonymes non accentués (_trans.pl)
- Version 1.0.4: ajout d'un dictionnaire des synonymes "brut
de décoffrage" (_synonyms.fr)
- Version 1.0.5: petite correction dans rundig et compléments
apportés à la présente documentation
- Version 1.0.6: modifications pour tenir compte des nouveautés
de la version 3.1.6 d'Ht://Dig
Didacticiel complémentaire
Christian Paulus a réalisé un didacticiel qui apporte
quelques conseils complémentaires pour configurer Ht://Dig: http://www.quesaco.org/astuces/astuce-htdig.php
|