|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
Bonjour,
Je recherche des solutions afin de mettre en place un moteur de recherche sur un site, avec une énorme contrainte: le serveur est mutualisé, donc impossible d'installer une extension php ou autre, je dois trouver des solutions avec la version php 5.2 standard et mysql 5... J'ai déjà trouvé 2 "solutions": - Recherche dans Mysql avec des LIKE - Recherche dans Mysql avec des champs FULLTEXT et MATCH Vous allez me dire que c'est pas fameux fameux...j'ai aussi trouver une extension php mais qui n'est pas installé par défaut, donc impossible de l'exploiter...: - http://php.net/manual/fr/book.mnogosearch.php Question 1: Laquelle des 2 premières solutions est la "meilleure" entre des LIKE ou FULLTEXT? Question 2: Est-ce que PHP offre pas un genre d'extension type mnogosearch MAIS installé par défaut? Question 3: Des autres idées? avis? Merci d'avance |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
le FULLTEXT c'est très bien pour faire de la recherche de texte, qu'est ce qui te bloque ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
Bonjour,
Déjà merci pour votre réponse J'ai pu lire à plusieurs endroits que le FULLTEXT était pratique, mais devenait vite très lent une fois atteint un gros volume de données. La question est: Combien vaut "gros"? 100'000 enregistrements? 1'000'000? Tout cela dépend de ma table bien sûr, prenons un exemple, voici une table: - id INT - content1 TEXT - content2 TEXT - content3 TEXT - option1 VARCHAR 128 - option2 VARCHAR 128 - option3 VARCHAR 128 Admettons que ma table contient 250'000 enregistrement avec de gros texte dans content1, 2 et 3, la recherche FULLTEXT sera acceptable niveau performance? Et niveau performance si on joint encore deux-trois tables? Merci |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
t’inquiète pas c'est fait pour
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
Dans tout les cas la méthode FULLTEXT est plus performante que des LIKE?
EDIT: Aussi FULLTEXT ne fonctione que sur les table MyISAM, une solution pour les tables InnoDB? Merci pour votre réponse. |
|
|
00
|
|
|
#6 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
Citation:
si tu veux absolument du InnoDB utilise LIKE pourquoi poser la question ?
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
C'est pour savoir si d'autres solutions existent
Dans ce cas je vais prendre FULLTEXT sur une table MyISAM. Encore une petite question qui sort du contexte...Quelle est la différence entre MyISAM et InnoDb? C'est un peu une question de goût? vous préférez Audi ou VW Merci |
|
|
00
|
|
|
#8 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
Citation:
MyISAM est plutot pour la recherche de texte (grace FULLTEXT) InnoDB fait du transactionnel (ce que ne fait pas MyISAM) donc c'est pas une question de gouts mais de fonctionnalités
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
Ok merci pour les réponses.
J'ai fait un test, j'ai ajouter un FULLTEXT sur plusieurs champs d'une table, avec les données déjà existantes, si je fait une recherche, il ne trouve rien. Je recrée une nouvelle table avec direct les index, j'insère des données et la je peux rechercher sans problèmes. J'en conclut donc qu'il faut que je ré-index ma table pour qu'il prennent en compte mes données, comment je fait ça? Merci |
|
|
00
|
|
|
#10 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
tu dois avoir au moins 4 entrées je crois
EDIT : visiblement c'est 3 http://dev.mysql.com/doc/refman/5.0/...xt-search.html Citation:
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#11 |
|
Membre éclairé
![]() Gérard OkonoDéveloppeur Web Inscription : juillet 2006 Messages : 711 ![]() |
Le choix entre MyISAM et InnoDb, tout dépend de tes contraintes.
A mon avis tout dépend de tes besoins. |
|
|
00
|
|
|
#12 | |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
Citation:
|
|
|
|
00
|
|
|
#13 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
Je ne peux pas avoir de FOREIGN KEY avec un MyISAM? Cela va me poser problème, j'ai des tables lié ou je devrais faire des recherches....
|
|
|
00
|
|
|
#14 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
Citation:
tu vas devoir rester sur le LIKE
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#15 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
En testant je peux créer des tables MyISAM avec des FOREIN KEY et des FULLTEXT...
Est-ce que je confond quelque chose? ou alors montrez moi un exemple pas possible. EDIT: Je ne comprend pas tout, j'ai fait le 1er exemple de la doc de Mysql => http://dev.mysql.com/doc/refman/5.0/...xt-search.html Si je recherche le mot "database" comem dans l'exemple ça fonctionn bien... Par contre si je test avec le mot "mysql", "after", "never" il n etrouve rien, alors que ces mots existent... Si je recherche "tutorial" ou "DBMS" la il trouve.... Pourquoi il trouve pas tout??? Merci pour vos éclaircissement |
|
|
00
|
|
|
#16 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
tes INDEX se font ?
EDIT : t'es peu être en case sensitive collation_cs (au lieu de _ci)
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#17 | ||
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
Apparemment oui, voici mon code sql pour CREATE:
Code :
EDIT 2: Heu apparemment non, si j'insère une entrée je peux mettre n'importe quoi dans mon champ qui est censé être une clé étrangère... |
||
|
|
00
|
|
|
#18 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
c'est le résultat de ton show create table ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#19 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
C'est la requête que j'ai lancer via phpmyadmin pour créer ma table...il la crée sans problème, mais par contre j'ai vu qu'il ne gérait quand même pas les relations...
Du coup dommage, je vais faire autrement, par contre j'ai toujours ce problème de recherche avec FULLTEXT qui me trouve pas tout... Une idée pour ça? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com