Programme d'indexation avec une interface WEB.


Introduction

Ces programmes sont le fruit d'un projet doli ( doli ) L'internaute est souvent perdu dans un site web , alors qu'il veux rechercher rapidement une information.
In english
Il est toujours agreable d'avoir un petit moteur de recherche permettant une recherche rapide concernant un site.
La recherche s'effectue grace a des mots cles. Nous devons alors pour realiser un petit moteur de recherche realiser une indexation des pages WEB.
Attention Nous ne souhaitons pa faire une moteur de recherche pour beaucoup de site , moteur de recherche generaliste par exemple, mais plutot indexer seulement une centaines de pages.

Partie logicielle fournie et requie


Vous devez avoir a votre disposition un serveur web avec du php3 ( php4 ? ) et une base mysql ( ou postgres si c'est le cas ecrivez moi ).

PRINCIPE du miniserveur web en tcl


L'idee est de realiser une base d'indexation en ASCII exploitable par un petit serveur web , ecirt en tcl.
Si vous voulez mettre en place ce petit serveur web :
Generer un fichier contenant tous les fichiers html que vous voulez indexer.
( find . -name '*.html' > listfile.txt )
Generer la base d'indexation grace au programme index.pl
perl index.pl listfile.txt > result.txt
Le nom result.txt est important , vous ne devais pas le changer.
Puis vous devez indexer pour des raison d'automisation se meme fichier grace a indexing.tcl
tclsh indexing.tcl > indexing.txt
Puis envoye le mini serveur web :
tclsh minihttpd.tcl
Et pour consulter la documentation , allez sur http://localhost:8080/

PRINCIPE de l'interface WEB.


La base de donnee est constitue de deux tables.
  1. url contient l'ensemble des url indexées.
  2. word contient l'ensemble des mots avec n fois le couple (poids, index de l'url dans la table url ).

Il est primordial que les donnees de url correspond a un url accessible par un browser web. La recherche pourrat s'effectue mais le document sera alors inaccessible le cas contraire.

INSTALLATION.

La base de donnée


Modifier le fichier class_bd.php3 pour votre installation. Ceci pour l'access a la base de donnée.
Remplissez en fait les valeurs correpondante pour les variables:
  1. $DB_HOST='localhost';
  2. $DB_USER='xxxxxx';
  3. $DB_PASSWD='xxxxx';
  4. $DB_SID='xxxxx';

Creez les tables grace au fichier search.sql : mysql -p votrepassword $DB_SID < search.sql

CE QUE VOUS VOULEZ INDEXER.


Pour la suite des opérations placez vous dans un repertoire accessible par le serveur web. par exemple ( /home/httpd/html/ sous RedHat).
Vous pouvez indexer le contenu de fichiers externes ( comme par exemple les HOWTOs qui se trouve sur freenix ).
Alors repatriez l'ensemble des fichiers grace a la commande wget. (wget -r -np http://www.freenix.org/unix/linux/HOWTO/)
Si vous voulez indexer les fichiers sur votre serveur en local , faite de meme: ( wget -r -np http://localhost/ ... ) Une fois que vous avez l'ensemble de vos fichiers a indexer.

Generation de la base d'indexation

Generer un fichier contenant tous les fichiers html que vous voulez indexer. ( find . -name '*.html' > listfile.txt )
Generer la base d'indexation grace au programme index.pl
perl index.pl listfile.txt > base.index

Insertion de la base d'indexation base.index dans la base de donnees MySQL

Mettez le fichier class_bd.php3 et parseindex.php3 de le repertoire contenant le fichier base.index ( repertoire qui doit etre accessible via le serveur web ).
Allez sur le serveur web pour acceder au fichier parseindex.php3, via un navigateur comme lynx ou apache. Alors apparait une entry , entrez le nom du fichier genere ( base.index ).
Attendez, il doit y avoir pas mal de truc qui s'affiche.

Utilisation de votre moteur de recherche


Puis apres, pour acceder a la recherche, appeler le script search.php3
Voila vous avez votre petit moteur de recherche.

Moteur de recherche deja implemente

Recherche sur les HOWTO francais
Recherche sur le site Linux Aide Electronique

Download

Download l'archive

Liens sur la theorie

C'est juste pour information dans l'espoir de pouvoir l'utiliser
SIAC
charles vidal.
vidalc@linux-france.org
( un grand merci a pierre dittgen ).