Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2011, 12h02   #1
Invité de passage
 
Inscription : avril 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 12
Points : 3
Points : 3
Par défaut recherche Fulltext ne retourne pas les bons résultats

Bonjour,

j'ai un souci avec une recherche MATCH, j'ai un livre qui s'intitule "L'Amour, mode d'emploi" qui est retourné si je recherche "mode amour" ou "mode", mais pas si je recherche "amour". Voici les requêtes :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- recherche "mode amour"
SELECT sl.liv_titre, MATCH (sl.liv_titre, sl.liv_auteur, sl.liv_editeur, sl.liv_ss_titre, sl.liv_collection, sl.liv_signature) AGAINST ("mode amour") AS score
FROM search_livre AS sl 	
WHERE MATCH (sl.liv_titre, sl.liv_auteur, sl.liv_editeur, sl.liv_ss_titre, sl.liv_collection, sl.liv_signature) AGAINST ("mode amour");
 
-- recherche "mode"
SELECT sl.liv_titre, MATCH (sl.liv_titre, sl.liv_auteur, sl.liv_editeur, sl.liv_ss_titre, sl.liv_collection, sl.liv_signature) AGAINST ("mode") AS score
FROM search_livre AS sl 	
WHERE MATCH (sl.liv_titre, sl.liv_auteur, sl.liv_editeur, sl.liv_ss_titre, sl.liv_collection, sl.liv_signature) AGAINST ("mode"); 
 
-- recherche "amour"
SELECT sl.liv_titre, MATCH (sl.liv_titre, sl.liv_auteur, sl.liv_editeur, sl.liv_ss_titre, sl.liv_collection, sl.liv_signature) AGAINST ("amour") AS score
FROM search_livre AS sl 	
WHERE MATCH (sl.liv_titre, sl.liv_auteur, sl.liv_editeur, sl.liv_ss_titre, sl.liv_collection, sl.liv_signature) AGAINST ("amour");
Et voici les retours :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
"mode amour" (résultat cohérent)
liv_titre 	score
100 idées qui ont transformé la mode 	5.5641112327576
L’Amour, mode d’emploi 	5.0729508399963
Le Premier Amour 	4.9132585525513
D’un pays sans amour 	4.8609657287598
La Belle Amour Humaine 	4.8097743988037
Soufi, mon amour 	4.5239219665527

"mode" (résultat cohérent)
liv_titre 	score
100 idées qui ont transformé la mode 	5.5641112327576
L’Amour, mode d’emploi 	5.0729508399963

"amour" (il manque une ligne dans ces résultats)
liv_titre 	score
Le Premier Amour 	4.9132585525513
D’un pays sans amour 	4.8609657287598
La Belle Amour Humaine 	4.8097743988037
Soufi, mon amour 	4.5239219665527
Si j'enlève le MATCH de la clause WHERE le livre "L'Amour, mode d'emploi" est bien retourné, mais avec un score de 0.
J'ai essayé de faire la recherche IN BOOLEAN MODE, mais même constat.
J'ai essayé de reconstruire l'index puis d'en refaire un nouveau, même constat.

Une idée sur pourquoi le titre "L'Amour, mode d'emploi" n'est pas retourné (ou indexé ?) sur le mot "Amour" ?

Merci !
gmic7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 13h08   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 654
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 654
Points : 2 656
Points : 2 656
bonjour,

Et si vous faites un match sur "L'Amour" que se passe-t-il ?
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 14h49   #3
Invité de passage
 
Inscription : avril 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 12
Points : 3
Points : 3
Ça fonctionne avec "L'amour" effectivement.

C'est possible de forcer l'indexation de "amour" tout seul plutôt que "l'amour" ?


Edit :
Apparement ce phénomène est corrigé depuis la version 5.1.6 de MySQL : http://bugs.mysql.com/bug.php?id=14194

Vous voyez une autre solution autre que mettre à jour MySQL ?
gmic7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 14h53   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
Je pense que MySQL considère "L'amour" comme un seul mot et non pas comme l apostrophe + amour.

Je ne sais pas si un autre SGBD agirait autrement.

Tu auras probablement le même problème avec "emploi" au lieu de "d'emploi".
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 14h59   #5
Invité de passage
 
Inscription : avril 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 12
Points : 3
Points : 3
Oui, ça à l'air d'être ça, j'ai édité mon message précédent suite à ce que j'ai trouvé ici : http://bugs.mysql.com/bug.php?id=14194
gmic7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 15h06   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
Si vraiment tu veux une recherche FULL TEXT efficace, construis-là toi-même en t'inspirant de l'article de SQLPro.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h43.


 
 
 
 
Partenaires

Hébergement Web