Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Recherche par SQL ou par algo PHP ? [ Base de données / MySQL ] (MadM@tt)

jeudi 2 août 2007 à 17:27:16 | Recherche par SQL ou par algo PHP ?

MadM@tt

Membre Club
Bonjour à tous,

Une petite question : avec la complexification de ma base de données, est-ce que je peux envisager, plutot que d'effectuer des recherche en utilisant des requetes SQL avec des mots clés comme "LIKE" etc.., d'utiliser à la place un algorithme PHP. ça me permettrait de pouvoir faire une recherche bien plus puissante, précise et évolutive.
La ou je me pose des questions, c'est est-ce que ça sera assez rapide ? (de parcourir tous les éléments de la BDD, jusqu'à 1000 environ on va dire) est-ce que ça va pas ralentir le serveur, manger trop de CPU ??
Je me demande comment font les "gros" sites, soient ils programment leurs algo de recherche en PHP (ou autre) soit ils ont des requetes SQL de malade lol (ce qui doit aussi ralentir les recherche d'ailleurs)

Merci pour vos réponses

- MadMatt -
Vb System Library

www.choisir-une-entreprise.com


jeudi 2 août 2007 à 17:43:12 | Re : Recherche par SQL ou par algo PHP ?

Evangun

Hello,

tu penses à récupérer toute ta base et SQL et travailler dessus en php ?
Ce que je peux déjà dire c'est que les hébergeurs qui ont la BDD sur un autre serveur que le script ne vont pas apprécier...
Pour le reste je ne sais pas, mais ça m'intéresse aussi

jeudi 2 août 2007 à 17:46:44 | Re : Recherche par SQL ou par algo PHP ?

MadM@tt

Membre Club
Ben la BDD est bien hébergée sur un autre serveur (je pense, sauf erreur de ma part).

Ce que je veux dire, c'est faire la recherche en script PHP plutot qu'en requete SQL. Par exemple en SQL on va faire "WHERE Champ1 LIKE %texte à rechercher%" alors que la je récupère tous les champs de la BDD (ou je peux faire une petite présélection à la limite avec quelques clauses WHERE), et puis en PHP je fais un algorithme qui va trier les résultats correspondants à ma recherche (en utilisant des fonctions de PHP quoi.

- MadMatt -
Vb System Library


jeudi 2 août 2007 à 17:54:07 | Re : Recherche par SQL ou par algo PHP ?

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Hello,

tu devrais jeter un oeil aux index FULLTEXT.
http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html si tu es sur mysql.



jeudi 2 août 2007 à 18:00:43 | Re : Recherche par SQL ou par algo PHP ?

J_G

Salut,

Sous la pression de mes clients, j'ai du refaire une methode de recherche...

La précédante, basée sur le classique FULLTEXT de MySQL n'était pas assez satisfaisante. Scores incompréhensibles et imprévisibles... Pas vraiment précis... Pas prévu pour le français.

Après une vague recherche, j'ai opté pour Lucene !!!
http://framework.zend.com/manual/en/zend.search.lucene.html

Le principe est de créer une base de données uniquement dédié à l'indexation et à la recherche. C'est pas très évident à utiliser au première abord, mais au final... Tout est configurable dans ce moteur de recherche : algo de scoring, et sous quelle forme sont stoqués les champs à rechercher.


Bref, en rentrant dans cette index mes champs sous formes normale, canonisées (pas de mot usuel, forme canonique des mots cf. stemmer, et forme phonétique cf. Soundex). Le résultat est très bon...


C'est une idée que je te donne. Mais aussi pas mal de boulot!

A+



jeudi 2 août 2007 à 18:54:41 | Re : Recherche par SQL ou par algo PHP ?

MadM@tt

Membre Club
Excellent les index FullText ! je connaissais pas du tout merci beaucoup, effectivement ça répond assez à ma question.

Juste une question pour la route, si je passe une colonne en FullText, j'ai pas trop compris l'histoire d'une autre colonne qui doit servir d'index ? Il faut que je crée une colonne supplémentaire par champ en FullText ?

Merci

- MadMatt -
Vb System Library


jeudi 2 août 2007 à 19:01:42 | Re : Recherche par SQL ou par algo PHP ?

Evangun

Moi je garderai Lucene en mémoire, ça a l'air surpuissant... merci pour l'info :)

jeudi 2 août 2007 à 19:03:46 | Re : Recherche par SQL ou par algo PHP ?

MadM@tt

Membre Club
Lucene est effectivement très intéressant, mais je garde ça pour quand j'aurais plus d'enregistrements, et du temps à y consacrer :)
Merci pour l'info

Sinon si quelqu'un aurait des explications à propos de l'INDEX des colonnes FULLTEXT, je vois pas pourquoi il devrait y avoir un index. A quoi ça sert ? Comment on le crée ? ou ça ? héhé, merci

- MadMatt -
Vb System Library


jeudi 2 août 2007 à 19:22:03 | Re : Recherche par SQL ou par algo PHP ?

coucou747

Salut

une chose est sure : les traitements doivent etre faits cote mysql et pas php...


une recherche sur exalead vous aurait peut-etre evite de poser cette question
In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy



Cette discussion est classé dans : php, sql, recherche, algo, requetes


Répondre à ce message

Sujets en rapport avec ce message

Pas de curseur en PHP [ par kenew ] J'ai beau chercher partout, je ne trouve pas le moyen d'envoyer des requetes à MySQL autrement qu'avec des requetes SQL. C'est pas clair, je sais, mai aide moteur de rechrche php sql [ par zizou94 ] Bonjour a tous, J'essaie depuis un semaine d inserer un moteur de recherche si mon site et je n y arrive pas. Etant novice en programmation je ne m en requetes simultanées php sur serveur [ par juju7377 ] Bonjour à tous,Alors voila j'approche de la fin en ce qui concerne la creation de mon site et maintenant peut etre trop tard mais je me demande si ca Authentification [ par gestimum ] Bonjour,J'ai réalisé un espace membre à partir d'un script trouver sur ce site. Tout fonctionne bien par contre il faudrait que je puisse rediriger le Recherche dans un array [ par destiny ] Bonjour all :)Un ptit probleme que je n'arrive pas résoudre seul!    $array_page = array(1 => array($charte_resa, "resa.php", 1), array($charte_contac pbm PhpMyAdmin 2.8.0.2 avec BDD SQL [ par romca ] Sous la dernière version de phpMyAdmin, 2.8.0.2: Je voudrais connecter des bases de données sous le serveur de BDD MySql qui ont déjà étés créées. moteur de recherche : en dur, en php-mysql... ?? [ par hdh ] Bonsoir ! Je suis en train de faire un site internet.... et pour aider l'internaute à trouver facilement l'info je voudrais mettre en place un moteur XmlHttpRequest et PHP [ par masseur ] Bonjour.J'ai trouvé un tutorial sur ce site [url=http://www.sutekidane.net/blog/creer-un-moteur-de-recherche-avec-xmlhttprequest-et-php.html]http://ww Php et base access [ par flopad ] Bonjour, lorsque je veux insérer des infos dans ma base access via un formulaire php, j'ai l'erreur suivante : L'opération doit utiliser une requête q Recherche un programmeur php [ par bbmaster ] Bonjour, Je recherche un programmeur connaissant bien le php, non professionnel pour crée plusieurs scripts php/MySql Pour un crée un site Il y aur


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.