|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() ![]() Développeur informatique Inscription : juillet 2007 Messages : 690 ![]() |
Bonjour,
Un beau petit cas pour vous Je fait une requete de recherche dans un champ text : Code :
Un client m'appele aujourd'hui pour me dire que son livre : momo bibi machinchose n'apparait pas dans le moteur de recherche du site quand on tape 'momo', et effectivement lorsqu'on fait un match against ('momo*') on a pas des resultats de match against ('momo* bibi*'). Alors ma question : POURKOI !!!!! Merci à l'avance |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Parce que ça ne marche qu'avec IN BOOLEAN MODE.
|
|
|
00
|
|
|
#3 | ||||
|
Membre Expert
![]() ![]() Développeur informatique Inscription : juillet 2007 Messages : 690 ![]() |
Je ne comprends pas
Code :
Code :
|
||||
|
|
00
|
|
|
#4 | |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
non, je veux dire que tu dis
Citation:
Si c'est juste un oubli dans ton message, merci de poster tes données afin qu'on puisse tester. |
|
|
|
00
|
|
|
#5 | ||||
|
Membre Expert
![]() ![]() Développeur informatique Inscription : juillet 2007 Messages : 690 ![]() |
Bon, j'ai avancé dans mon problème un peu :
voila ma requete avec un mot : Code :
Code :
Lorsqu'on remplace MATCH par LIKE, les résultats sont tous la mais au prix d'une ennorme perte de performance (c'est des grosses tables que j'ai). Lorsq'on recherche ours brun* on a des résultats que l'on a pas dans une recherche avec ours Merci |
||||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
1/ ta table est-elle bien en MyISAM ? 2/ as-tu bien mis un index FULLTEXT
Code :
CREATE fulltext INDEX ft_titre ON p(titre) |
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() ![]() Développeur informatique Inscription : juillet 2007 Messages : 690 ![]() |
Citation:
Dire que tous ces oui ne résolvent pas mon problème |
|
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Qu'obtiens-tu, et que souhaiterais-tu obtenir ?
|
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() Développeur informatique Inscription : juillet 2007 Messages : 690 ![]() |
J'obtiens le fait que les résultats de recherche avec "mot1 mot2" ne soient pas inclus dans les résultats de recherche avec "mot1" seulement.
Et ce que je veux obtenir .... ben que les résultats de "mot1 mot2" soient inclus dans les résultats de "mot1", en utilisant MATCH () AGAINST () |
|
|
00
|
|
|
#10 | ||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
dans tes données la requête suivante :
Code :
|
||
|
|
00
|
|
|
#11 | |||||
|
Membre Expert
![]() ![]() Développeur informatique Inscription : juillet 2007 Messages : 690 ![]() |
Citation:
Code :
|
|||||
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Ours est un "stopword", càd un mot ignoré par par la recherche FULLTEXT (liste des stopwords dans la doc, chap 12.8.3). Donc tu pourras trouver ourson, ourse, etc., mais pas ours. Donc 'ours* brun' repêche les Ours bruns parce qu'ils contiennent "brun", mais 'ours*'ne peut pas les trouver.
|
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() Développeur informatique Inscription : juillet 2007 Messages : 690 ![]() |
Merci infiniment !
C'est effectivement ça le problème !! Maintenant reste à trouver la solution Je vous tiens au courant ! |
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() ![]() Développeur informatique Inscription : juillet 2007 Messages : 690 ![]() |
Pour cloturer définitvement !
On peux configurer mysql pour qu'il prenne en charge une liste de stopwords personnalisée, il suffit juste d'éditer my.cnf et d'y ajouter (ou modifier) la valeur de la variable ft_stopword_file : Code :
ft_stop_word_file = /chemin/vers/stopwordfile.txt
On regénère les index : (ça prend du temps) Et voila ! Merci beaucoup pour ton aide précieuse antoun
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com