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:
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.5 $
Manipulation des attributs
size_max($size)
Get or set size max of file read by indexer (For avoid memory pb).
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
most_popular_word($max,$id)
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 44:
Non-ASCII character seen before =encoding in 'à'. Assuming CP1252