|
|
|
|
Salut
Je voudrais optimiser les résultats d'une recherche avec MySql
voila je voudrais que le moteur de recherche sois avec "Or" mais le souci avec Or c'est que si tu tape comme recherche " Toto Tata Tito " la requette dans la base de données généré sera :
"Where like %tata% or like %toto% or like %tita% "
Mon Problème est : si un utilisateur tape comme recherche "toto tata" le premier résultat ne serais pas surement celui qui contiens "tata toto" puisque quand je le fais le "Or" l'Ordre n'est pas en fonction des Mots les plus trouvés ! alors la recherche "tata toto " peux retourner comme résultat :
" 1- tata est dans la cuisine 2-toto est dans le jardin 3-tata et toto sont dans la cuisine 4- .......... ... "
alors que d'après la recherche le premier résultat qui devrais être affiché en premier c'est celui qui correspond le plus a la recherche c'est à dire le "3-tata et toto sont dans la cuisine" Alors comment faire pour régler ce problème ? Merci pour votre aide .
Pourquoi faire une recherche si tu sais qu'ils sont dans la cuisine et dans le jardin ? O_o
Recherche : [_______________] [] Rechercher la phrase exacte en gros ça ferait comme les guillemets dans un moteur de recherche comme google. |
Répondre à ensixte
|
Et bien tu pourrais compter le nombre de chaque résultat, enregistrer dans une table "recherches" un champs du nom de la requete (en retirant les accents, espaces, etc...) le nombre de résultats de chaque mot dans un champs de même nom pour chacun, puis utiliser cette table dans le "SELECT * from recherches WHERE requete_sans_accents="$requete-sans-accents" ORDER BY $nombre DESC";
|
Mdr !! :p C'est vrai que C'est une idée impeu folle ! mais je vien de trouver la solution qui se résume sur une ligne en SQL !!:| !!!
|