mnogosearch avec mhonarc

Dans l’article précédent, nous avons vu comment stocker une messagerie sous la forme de fichiers html. Cet article proposait en conclusion d’ajouter à notre générateur de pages html un moteur de recherche comme htdig ou mnogosearch. C’est ce que nous allons faire maintenant.

Pour notre exemple, nous choisissons le moteur de recherche mnogosearch mais les explications devraient vous permettre de le faire avec tout autre moteur de recherche.

En préambule, il faut dire que mes recherches sur la toile pour arriver à faire cela sont rester vaines. Ce que je vous propose n’est pas forcément la meilleure solution.

L’installation de mnogosearch se fait avec avec le paquet (rpm, deb...) recommandé pour votre distribution proposé dans les dépôts. Sinon, vous le trouverez sur la page de téléchargement.

Mnogosearch propose une interface de recherche dénommée search.cgi et elle est stockée dans le dossier cgi-bin

Lorsque l’on fait une recherche, on voit dans l’url les paramêtres qui permettent d’interroger le moteur :
/cgi-bin/search.cgi?q=marecherche&cmd=Search!
On découvre également la possibilité de faire des recherches avancées :
/cgi-bin/search.cgi?form=extended&qprev=

Du côté de mhonarc, nous avons dans notre fichier common.mrc [1] ceci :

<!-- Variable representing markup of search form. -->
<DefineVar>
SEARCH-FORM
<form method="get" action="$SEARCH-CGI$"
><nobr><input type="text" name="query" size="20"
><input type="submit" name="submit" value="Search"
></nobr><input type="hidden" name="idxname" value="$LIST-NAME$">
<small><nobr>[<a href="$SEARCH-CGI$?idxname=$LIST-NAME$">$ADV-SEARCH-LABEL$</a>]</nobr></small></form>
</DefineVar>

Je n’ai pas pu trouver comment maitriser correctement la variable $SEARCH-CGI$ et de toute façon, on voit que les variables ne sont pas correctes : mnogosearch n’utilise pas le terme "query" mais juste "q" et la commande de lancement n’est pas submit mais cmd. Donc on va transformer ce morceau de common.mrc avec ce qu’on a vu plus haut :

<!-- Variable representing markup of search form. -->
<DefineVar>
SEARCH-FORM

<form method="get" action="/cgi-bin/search.cgi">
<nobr><input type="text" name="q" size="20">
<input type="submit" name="submit" value="Trouver">
</nobr><input type="hidden" name="cmd" value="Search!">
<small><nobr>[<a href="/cgi-bin/search.cgi?form=extended&amp;qprev=">$ADV-SEARCH-LABEL$</a>]</nobr></small></form>
</DefineVar>

Il est peut-être plus simple de remplacer

<input type="submit" name="submit" value="Trouver">
</nobr><input type="hidden" name="cmd" value="Search!">

par
<input type="submit" name="cmd" value="Search!">
je vous laisse essayer.

Vos pages générées par mhonarc vont maintenant permettre de lancer le moteur mnogosearch avec les bons paramètres. Le moteur mnogosearch est francisé à l’aide d’un paquet i18N que l’on trouve sur le site http://mnogosearch.free.fr/. Il suffit de remplacer le fichier search.htm par celui présent dans le paquet i18N, de recopier notre ligne DBAddr et de préciser qu’il doit utiliser "Include search/lang.latin1.fr.conf" au lieu de "Include search/lang.latin1.en.conf".