Overblog
Suivre ce blog Administration + Créer mon blog
30 décembre 2008 2 30 /12 /décembre /2008 22:58
Htdig est un moteur de recherche qui fonctionne à la manière de google : un crawler parcours les pages et indexe le contenu. Quand un visiteur a besoin d'une page, htdig interroge sa base de données et retourne les résultats sous forme de lien + description.

Htdig est un programme stand-alone, vous pouvez donc ainsi indexer votre propre site quelque soit la technologie utilisée par celui-ci et quelque soit le format des données. De plus, si un changement se produit dans la structure ou le fonctionnement du site, pas besoin de modifier le moteur de recherche : htdig visitant les pages comme n'importe quel internaute, il est indépendant du fonctionnement du dit site.Si celà ne suffit pas, il faut également noter qu'htdig est capable d'indexer (via des plugin externes) plusieurs types de documents : PDF, DOC, ...

Si htdig fonctionne parfaitement sur un système unix/linux et qu'une documentation abondante est disponnible pour ces systèmes, il n'en est pas de même pour un serveur windows. Nous allons donc voir ensemble comment installer et faire fonctionner htdig sur un serveur iis.


Installation d'IIS


Si le PC sur lequel htdig doit être lancé n'est pas encore un serveur web il faut installer IIS. La procédure est simple puisqu'IIS est considéré par l'installeur windows comme une option du système d'exploitation.

Pour installer IIS, référez-vous aux explications du site http://raphaello.univ-fcomte.fr/w2k/07-InternetInformationServer/IIS.htm.

Un serveur web local sera installé et utilisable sur la machine. Il sera accessible à l'adresse http://localhost/.

 

 


Installation d'htdig


Htdig fonctionne sous windows. Il est possible de compiler soi même sa version comme conseillé dans le guide accessible sur le site d'htdig mais la procédure est plus compliquée qu'il n'y parait. Il sera plus simple de télécharger des binaires déjà compilés et de suivre les instructions.

Télécharger Htdig

Les binaires htdig sont disponibles à l'adresse suivante :

http://www.htdig.org/files/binaries/htdig-316-win2k.zip

Le zip contient non seulement tous les fichiers utiles mais a également été amélioré pour nous rendre la vie plus facile. Les contributeurs sont cités dans le fichier ReadMe.txt à la racine du zip.

 

 

 

Mise en place du crawler

 

 

En suivant le fichier ReadMe, on y arrive presque. Il faudra faire quelques ajustements mais ça reste minime comparé à la version avec compilation. Commençons donc par décompresser le contenu du zip dans le dossier c:\htdig. On obtient une arborescence qui devrait ressembler à ça :

• Bin
• Common
• Conf
• Contrib
• Db
• Inetpub
• ReadMe.txt


Le dossier bin contiendra les binaires et autres fichiers batch qu'il nous faudra lancer pour indexer le site. C'est là également que seront les logs (nous y reviendrons plus tard).

Le dossier « common » est le « common dir » d'htdig. C'est là que seront les fichiers de templates, mots réservés, ...

Le dossier conf contiendra le fichier de config que nous éditerons bientôt.

Contrib ne nous sera pas utile, il contient des contributions. Référez vous au ReadMe pour en savoir plus.

Le dossier db contiendra la future base de données de notre moteur de recherche.

Le dossier Inetpub contiendra les éléments qui entrerons en interaction avec nos visiteurs : une page pour lancer la recherche et le cgi qui affichera les résultats.

 

Mise en place des fonctions d'interaction avec le visiteur

 

 

Lorsqu'un visiteur effectuera une recherche, htdig fera appel à un gci qui cherchera les termes demandés dans la base de données. Il nous faut donc créer un dossier cgi accessible à notre site web. Pour cela nous allons à nouveau nous référencer au site http://raphaello.univ-fcomte.fr/w2k/07-InternetInformationServer/IIS.htm#virtuelWEB. Nous considèrerons que le dossier est nommé « cgi-bin ». N'oublions pas de lui donner des droits d'exécution.

Il faut à présent copier le contenu du dossier « Inetpub\wwwroot\cgi-bin » dans notre nouveau dossier « cgi-bin ».

Copions à présent le contenu du dossier « Inetpub\wwwroot\htdig » quelque part dans le dossier de notre site. Pour l'exemple, nous dirons que nous l'avons copié dans un dossier « htdig ».

 

Le visiteur peut maintenant se rendre à l'adresse http://localhost/htdig/search.html et voir le formulaire de recherche.

 

A noter qu'il peut être nécessaire d'éditer le fichier « search.html » et de modifier le paramètre « action » de la balise form et de remplacer « htsearch » par « htsearch.exe ».



Installation de Cygwin

Si nous continuons à suivre les instruction du fichier Readme, nous risquons de nous heurter à un problème : l'indexation ne fonctionnera pas. La raison de ce malfonctionnement est que le crawler a besoin d'utiliser un fichier sh.exe qui n'existe pas sur la machine. Pour résoudre le problème, nous allons installer cygwin.

 

Cygwin est un utilitaire qui permet d'exécuter des commandes unix sous windows. Si vous jetez un œil au dossier bin d'htdig, vous verrez d'ailleurs que certaines dll de cygwin sont déjà incluses. Rendons nous donc sur http://www.cygwin.com/ ou nous pourrons télécharger le fichier « setup.exe » lancera l'installation.

 

Celle-ci, n'étant pas compliqué nous ne la détaillerons pas ici. La seule chose à laquelle nous devons faire attention est de bien sélectionner l'option « install » de la section « Shells » dans la liste des modules. Il faut également faire attention de bien installer cygwin dans le dossier « c:\cygwin » (ou une autre lettre si htdig est sur une autre lettre mais il faut qu'htdig et cygwin soient à la racine du même lecteur).

 

Une fois cygwin installé, nous allons mettre à jour nos dll pour plus de sécurité. Copions donc « cygwin1.dll » et « cygz.dll » de « c:\cygwin\bin » vers « c:\htdig\bin ».

Nous pouvons à présent reprendre les instructions d'installation là ou nous les avons laissées.




Configuration d'htdig

 

Notre installation est maintenant complète et prête à indexer notre site. Il nous reste une chose à faire : configurer le crawler pour qu'il indexe correctement nos pages.

La FAQ d'htdig (http://www.htdig.org/FAQ.html) nous permettra d'obtenir les informations utiles pour optimiser la configuration. Notons simplement que les informations importantes sont :

 

 

1. start_url : url de départ du crawler
2. limit_urls_to : permet d'empêcher le moteur de partir à l'aventure là ou il ne devrais pas
3. exclude_urls : pour exclure certaines parties du site
4. maintainer : votre adresse email



 

Lancement d'htdig

 

Pour lancer htdig, nous disposons d'un fichier batch pré-écrit et distribué dans notre zip de départ. Lançons simplement le fichier « htdig.bat » qui se trouve dans le dossier « bin » d'htdig. Les options par défaut peuvent être gardée mais il est toujours possible de l'éditer pour les modifier.

 

En plus de lancer l'indexation à notre place, ce fichier redirige la sortie vers des fichiers logs qui se trouvent dans le dossier bin. Il est possible de désactiver la redirection vers les fichiers pour suivre le passage du crawler à l'écran.

 

Grâce à notre installation de cygwin, il nous est possible de suivre en direct l'évolution du crawler sans perdre l'enregistrement des logs dans un fichier. En effet, nous disposons maintenant des commandes unix. Lançons donc cygwin et rendons nous dans le lecteur c:\ Nous pouvons à présent lancer la commande « tail -f htdig/bin/htdig.log ». Le fichier sera alors lu et les dernières lignes affichées. Dès que le fichier sera modifié, notre affichage sera mis à jour.



 

 

Indexation de PDF

 


Pour indexer les pdf, htdig a besoin de les convertir. Pour cela, il dispose d'un utilitaire dans le dossier bin : « pdf2html.bat » qui nous a été livré avec le zip original.

 

Il nous suffit donc de nous référer à la FAQ (http://www.htdig.org/FAQ.html#q4.9) pour voir qu'une modification de la configuration est nécessaire. Ajoutons la ligne suivante :

 

external_parsers: application/pdf->text/html /usr/local/bin/doc2html.bat

 

C'est tout. Htdig va maintenant parser et indexer les PDF de notre site.


 

 

Conclusion

 


Pour tester le bon fonctionnement de tout ceci, il suffit de se rendre sur la page l'adresse http://localhost/htdig/search.html et d'y tester l'indexation et la pertinence du moteur.

 

L'installation n'était pas aisée puisqu'il fallait savoir quoi installer mais n'est pas insurmontable, n'importe qui devrait en être capable.

 

Libre à vous évidement, de personnaliser votre installation en modifiant la page de recherche et/ou la configuration d'htdig. La FAQ et les sites permettant d'en apprendre plus sur le moeur de recherche sont suffisament nombreux pour ne pas avoir à aborder le sujet ici.

 


 

 

 

Sources

 


1. http://forum.vnunet.fr/viewtopic.php?f=17&t=36927
2. http://www.htdig.org/FAQ.html
3. http://osdir.com/ml/web.htdig.general/2002-06/msg00055.html
4. http://raphaello.univ-fcomte.fr/w2k/07-InternetInformationServer/IIS.htm

 

 

 

 

 

 

Partager cet article
Repost0

Présentation

  • : Carnet de route d'un développeur PhP...
  • : Ah ! Une description... Ben en fait je me disais que j'allais faire un blog depuis longtemps, sauf que c'était juste pour y stocker des trucs pour moi, des espèces de post-it virtuels. Bon tant qu'à faire autant qu'il te profite à toi aussi.
  • Contact

Recherche

Liens