Circa::Indexer - provide functions to administrate Circa, a www search engine running with Mysql
use Circa::Indexer; my $indexor = new Circa::Indexer; if (!$indexor->connect_mysql($user,$pass,$db)) {die "Erreur à la connection MySQL:$DBI::errstr\n";} $indexor->create_table_circa; $indexor->drop_table_circa; $indexor->addSite("http://www.alianwebserver.com/", 'alian@alianwebserver.com', "Alian Web Server"); 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"; $indexor->update(30,1);
Look in admin.pl,admin.cgi,admin_compte.cgi
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,png, deb,xls,ppt,class,GIF,css,js,wav,mid - Weight for each word is in hash $ConfigMoteur
Circa parse html document. convert it to text. It count all word found and put result in hash key. In addition of that, it read title, keywords, description and add a weight to all word found.
Example:
my %ConfigMoteur=( 'facteur_keyword' =>15, 'facteur_description' =>10, 'facteur_titre' =>10, 'facteur_full_text' =>1, 'niveau_max' =>7, 'nb_min_mots' =>2 ); <html> <head> <meta name="KeyWords" CONTENT="informatique,computing,javascript,CGI,perl"> <meta name="Description" CONTENT="Rubriques Informatique (Internet,Java,Javascript, CGI, Perl)"> <title>Alian Web Server:Informatique,Société,Loisirs,Voyages,Expression</title> </head> <body> different word: cgi, perl, cgi </body> </html>
After parsing I've a hash with that:
$words{'informatique'}= 15 + 10 + 10 =35 $words{'cgi'} = 15 + 10 +1 $words{'different'} = 1
Words is add to database if total found is > $ConfigMoteur{'nb_min_mots'} (2 by default). But if you set to 1, database will grow very quicly but allow you to perform very exact search with many worlds so you can do phrase searches. But if you do that, think to take a look at size of table relation.
After page is read, it's look into html link. And so on. At each time, the level grow to one. So if < to $Config{'niveau_max'}, url is added.
$Revision: 1.8 $
Get or set size max of file read by indexer (For avoid memory pb).
Get or set the MySQL port
Get or set the host indexed.
Positionne le proxy a utiliser le cas écheant.
$adr_proxy : Ex: 'http://proxy.sn.no:8001/'
Get or set the prefix for table name for use Circa with more than one time on a same database
$user : User MySQL $password : Password MySQL $db : Database MySQL $server : Adr IP MySQL
Connect Circa to MySQL. Return 1 on succes, 0 else
Close connection to MySQL
Ajoute le site d'url $url, responsable d'adresse mail $email à la bd de Circa
Add a local $url
Update url $id on table $compte
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.
Reindexe les sites qui n'ont pas été mis à jour depuis plus de $xj jours
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
Detruit les tables de Circa
Detruit les tables de Circa pour l'utilisateur id
- categorie : Catégories de sites - links : Liste d'url - relations : Liste des mots / id site indexes - stats : Liste des requetes
Affiche le debut de document (<head></head>)
Rend un buffer contenant une balise select initialisée avec les données de la table links responsable $id
Rend un buffer contenant une balise select initialisée avec les données de la table links responsable $id liens non valides
Rend un buffer contenant une balise select initialisée avec les données de la table responsable
Rend un buffer contenant une balise select initialisée avec les données de la table categorie responsable $id
$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,
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
Supprime le lien $id_url de la table $compte/relation et $compte/links
Supprime la categorie $id pour le compte de responsable $compte et tous les liens et relation qui sont dans cette categorie
Renomme la categorie $id pour le compte de responsable $compte en $nom
Move url from one categorie to another
Inscrit un site dans une table temporaire
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.
Ajoute un site à la table links.
$url : Url de la page à ajouter $idMan : Id dans la table responsable du responsable de ce site
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
Parse et rend les meta-mots-clef et la meta-description de la page HTML contenu dans $entete
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
Rend la chaine correspondante à la catégorie $id avec ses rubriques parentes
Retourne la premiere ligne du resultat de la requete $requete sous la forme d'un tableau
Alain BARBET alian@alianwebserver.com
1 POD Error
The following errors were encountered while parsing the POD:
Non-ASCII character seen before =encoding in 'à'. Assuming CP1252
To install Circa::Indexer, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Circa::Indexer
CPAN shell
perl -MCPAN -e shell install Circa::Indexer
For more information on module installation, please visit the detailed CPAN module installation guide.