OVH Cloud OVH Cloud

Moteur de recherche

3 réponses
Avatar
xpatval
Bonjour,

Souhaitant réaliser un moteur de recherche inclus dans un site, je voudrais
savoir s'il existe une solution en php qui permette de balayer une base
entière, à partir d'une chaîne de caractères. Je doute, mais dans
l'ignorance...

Merci,

xpatval

--
xpatval@(oo)wanadoo.fr [Oter le (oo) dans l'adresse]
-----
http://24lemans.free.fr
-----

3 réponses

Avatar
Olivier
"xpatval" wrote in
news:cb9gpf$m9u$:

Bonjour,

Souhaitant réaliser un moteur de recherche inclus dans un site, je
voudrais savoir s'il existe une solution en php qui permette de
balayer une base entière, à partir d'une chaîne de caractères. Je
doute, mais dans l'ignorance...

Merci,

xpatval



Salut,

Une base quoi ? Tu parles d'une base de donnée de type MySQL, ou bien
d'un ensemble de pages web ?

Si c'est pour MySQL :
select * from maTable where monChamp like "%maChaineDeCaracteres%"

Si c'est pour parser des fichiers :
Il faut lister tous les fichiers de ton répertoire avec

$path = './'; // on scanne le répertoire où est le script
$dir = opendir($path);
while($nomDuFichier = readdir($dir)) {
$pathFichier = $path.$nomDuFichier;
$f = fopen($pathFichier, 'r');
if(!feof($f)) $contenu = fgets($f, 10E10);
fclose($f); // on récupère le contenu du fichier
if(strpos($contenu, $maChaineDeCaracteres) != -1) { // si on trouve la
chaine de caracs dedans, on le dit.
echo "Occurence trouvée dans le fichier $pathFichier <br>";
}
}
closedir($dir);


@+
O.L.

Avatar
Pascal (Collectours)
xpatval wrote:

Bonjour,

Souhaitant réaliser un moteur de recherche inclus dans un site, je
voudrais savoir s'il existe une solution en php qui permette de balayer
une base entière, à partir d'une chaîne de caractères. Je doute, mais dans
l'ignorance...

Merci,

xpatval

Bonjour,

- si c'est d'une recherche dans les pages d'un site qu'il s'agit
essayez http://phpdig.toiletoine.net/
qui est un moteur réalisant une véritable indexation, à la manière des
robots du web.
Ne tentez surtout pas de parcourir l'ensemble des fichiers de votre site à
chaque requète de recherche sinon le serveur sera vite saturé et vos
visiteurs dégoutés.
- S'il s'agit d'une base de données, ne tentez pas non plus de select...
where...'%chaine%' - c'est imprécis, lent et improductif.
En règle générale, à moins que votre site ne fasse que quelques pages, un
moteur de recherche interne doit être basé sur un index inversé reconstruit
régulièrement.
Cdlt
Pascal

Avatar
xpatval
C'est effectivement un moteur pour une base MYSQL.
Cette base contient non seulement des champs "ordinaires" (types nom,
prénom, statut, etc...) mais aussi des champs textes.
J'ai, dans un premier temps, opter pour la solution suivante: un SELECT *
from TABLE (de ttes les tables, c-a-d d'une 20taine), et un stristr de la
valeur de recherche dans chaque ligne rapportée par la requête. Une méthode
comme une autre ?

xpatval

--
xpatval@(oo)wanadoo.fr [Oter le (oo) dans l'adresse]
-----
http://24lemans.free.fr
-----
"Pascal (Collectours)" a écrit dans le
message de news:40da8c42$0$14138$
xpatval wrote:

Bonjour,

Souhaitant réaliser un moteur de recherche inclus dans un site, je
voudrais savoir s'il existe une solution en php qui permette de balayer
une base entière, à partir d'une chaîne de caractères. Je doute, mais
dans


l'ignorance...

Merci,

xpatval

Bonjour,

- si c'est d'une recherche dans les pages d'un site qu'il s'agit
essayez http://phpdig.toiletoine.net/
qui est un moteur réalisant une véritable indexation, à la manière des
robots du web.
Ne tentez surtout pas de parcourir l'ensemble des fichiers de votre site à
chaque requète de recherche sinon le serveur sera vite saturé et vos
visiteurs dégoutés.
- S'il s'agit d'une base de données, ne tentez pas non plus de select...
where...'%chaine%' - c'est imprécis, lent et improductif.
En règle générale, à moins que votre site ne fasse que quelques pages, un
moteur de recherche interne doit être basé sur un index inversé
reconstruit

régulièrement.
Cdlt
Pascal