NAME

Circa::Indexer - provide functions to administrate Circa, a www search engine running with Mysql

SYNOPSIS

 use Circa::Indexer;
 my $indexor = new Circa::Indexer;
 
 # Connection à MySQL
 if (!$indexor->connect_mysql($user,$pass,$db)) 
	{die "Erreur à la connection MySQL:$DBI::errstr\n";}
	
 # Creation des tables de Circa
 $indexor->create_table_circa;
 
 # Suppression des tables de Circa
 $indexor->drop_table_circa;
 
 # Ajout d'un site
 $indexor->addSite("http://www.alianwebserver.com/",
                   'alian@alianwebserver.com',
                   "Alian Web Server");
                   
 # Indexation (mots et url) des liens non encore parsé sur le premier site inscrit                  
 my ($nbIndexe,$nbAjoute,$nbWords,$nbWordsGood) = $indexor->parse_new_url(1);
 print 	"$nbIndexe pages indexées,"
 	"$nbAjoute pages ajoutées,"
 	"$nbWordsGood mots indexés,"
 	"$nbWords mots lus\n";

 # Interroge les pages qui n'ont pas été parsées depuis plus de 1 mois sur le
 # premier site inscrit
 $indexor->update(30,1);

Voir également les fichier admin.pl et admin.cgi

DESCRIPTION

This is Circa::Indexer, a module who provide functions to administrate Circa, a www search engine running with Mysql. Circa is for your Web site, or for a list of sites. It indexes like Altavista does. It can read, add and parse all url's found in a page. It add url and word to MySQL for use it at search.

This module can:

Add url
Index words
Parse url, and so on.

Remarques: - This file are not added : doc,zip,ps,gif,jpg,gz,pdf,eps - Weight for each word is in hash $ConfigMoteur

VERSION

$Revision: 1.7 $

Manipulation des attributs

size_max($size)

Get or set size max of file read by indexer (For avoid memory pb).

set_agent

port_mysql($port)

Get or set the MySQL port

host_indexed($host)

Get or set the host indexed.

proxy($adr_proxy)

Positionne le proxy a utiliser le cas écheant.

$adr_proxy : Ex: 'http://proxy.sn.no:8001/'

prefix_table

Get or set the prefix for table name for use Circa with more than one time on a same database

connect_mysql($user,$password,$db,$server)

$user     : Utilisateur MySQL
$password : Mot de passe MySQL
$db       : Database MySQL
$server   : Adr IP du serveur MySQL

Connecte l'application à MySQL. Retourne 1 si succes, 0 sinon

Methodes administration globales

addSite($url,$email,$titre);

Ajoute le site d'url $url, responsable d'adresse mail $email à la bd de Circa

addLocalSite($url,$email,$titre,$local_url,$path,$urlRacine);

Ajoute le site d'url $url, responsable d'adresse mail $email à la bd de Circa

parse_new_url($idp)

Parse les pages qui viennent d'être ajoutée. Le programme va analyser toutes les pages dont la colonne 'parse' est égale à 0.

Retourne le nombre de pages analysées, le nombre de page ajoutées, le nombre de mots indexés.

update($xj,$idp)

Reindexe les sites qui n'ont pas été mis à jour depuis plus de $xj jours

create_table_circa

Cree la liste des tables necessaires à Circa:

- categorie   : Catégories de sites
- links       : Liste d'url
- responsable : Lien vers personne responsable de chaque lien
- relations   : Liste des mots / id site indexes
- inscription : Inscriptions temporaires

drop_table_circa

Detruit les tables de Circa

drop_table_circa_id

Detruit les tables de Circa pour l'utilisateur id

create_table_circa_id

Cree la liste des tables necessaires à Circa:

- categorie   : Catégories de sites
- links       : Liste d'url
- relations   : Liste des mots / id site indexes
- stats 	: Liste des requetes

Fonctions HTML

start_classic_html

Affiche le debut de document (<head></head>)

get_liste_liens($id)

Rend un buffer contenant une balise select initialisée avec les données de la table links responsable $id

get_liste_site

Rend un buffer contenant une balise select initialisée avec les données de la table responsable

get_liste_categorie($id)

Rend un buffer contenant une balise select initialisée avec les données de la table categorie responsable $id

fill_template($masque,$vars)

$masque : Chemin du template
$vars : reference du hash des noms/valeurs à substituer dans le template

Rend le template avec ses variables substituées. Ex: si $$vars{age}=12, et que le fichier $masque contient la chaine:

J'ai <? $age ?> ans, 

la fonction rendra

J'ai 12 ans,

Methode administration par compte

admin_compte($compte)

Retourne une liste d'elements se rapportant au compte $compte:

$responsable	: Adresse mail du responsable
$titre		: Titre du site pour ce compte
$nb_page	: Nombre de page pour ce site
$nb_words      : Nombre de mots indexés
$last_index	: Date de la dernière indexation
$nb_requetes	: Nombre de requetes effectuées sur ce site
$racine	: 1ere page inscrite

Retourne la reference vers un hash representant la liste des $max mots les plus présents dans la base de reponsable $id

delete_url($compte,$id_url)

Supprime le lien $id_url de la table $compte/relation et $compte/links

delete_categorie($compte,$id)

Supprime la categorie $id pour le compte de responsable $compte et tous les liens et relation qui sont dans cette categorie

rename_categorie($compte,$id,$nom)

Renomme la categorie $id pour le compte de responsable $compte en $nom

inscription($email,$url,$titre)

Inscrit un site dans une table temporaire

Méthodes privées

look_at ($url,$idc,$idr,$lastModif,$url_local)

Ajoute les liens definis à l'URL $url à la base de donnée. Indexe les mots de chaque page

$url : Url de la page à indexer
$idc : Id de l'url dans la table links
$idr : Id du responsable de cette url
$lastModif : Ne parse pas la page si elle n'a pas été mis à jour 
             depuis cette date (facultatif)
$url_local : Chemin local pour accéder au fichier (facultatif)

Retourne (-1,0) si l'adresse est invalide, le nombre de liens trouvés dans la page ainsi que le nombre de mots trouves sinon.

add_site($url,$idMan)

Ajoute un site à la table links.

$url   : Url de la page à ajouter
$idMan : Id dans la table responsable du responsable de ce site

drop_site($id)

Supprime un site de la table personne. Cela supprime egalement les elements de la table links et relation qui appartiennent à ce site

$id   : Id du site

get_meta($entete)

Parse et rend les meta-mots-clef et la meta-description de la page HTML contenu dans $entete

analyse_data($data,$facteur,%l)

Recupere chaque mot du buffer $data et lui attribue une frequence d'apparition. Les resultats sont ranges dans le tableau associatif passé en paramètre. Les résultats sont rangés sous la forme %l=('mots'=>facteur).

$data : buffer à analyser
$facteur : facteur à attribuer à chacun des mots trouvés
%l : Tableau associatif où est rangé le résultat

Retourne la référence vers le hash

getParent($id,%tab)

Rend la chaine correspondante à la catégorie $id avec ses rubriques parentes

get_first($requete)

Retourne la premiere ligne du resultat de la requete $requete sous la forme d'un tableau

AUTHOR

Alain BARBET alian@alianwebserver.com

1 POD Error

The following errors were encountered while parsing the POD:

Around line 48:

Non-ASCII character seen before =encoding in 'à'. Assuming CP1252