IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Problème avec la recherche en fulltext


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Points : 34
    Points
    34
    Par défaut Problème avec la recherche en fulltext
    Bonjour,

    Pour le développement d'un système de gestion documentaire, j'implémente un module de recherche de documents.

    Pour cela, j'ai la table en MySQL (version 5) suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    CREATE TABLE `files` (
      `FILE_ID` int(11) NOT NULL auto_increment,
      `AUTHOR` varchar(65) collate latin1_general_ci default NULL,
      `TYPIST` varchar(65) collate latin1_general_ci default NULL,
      `CREATION_DATE` date default NULL,
      `PUB_DATE` date NOT NULL default '0000-00-00',
      `FILESIZE` int(6) default NULL,
      `PATH` varchar(255) collate latin1_general_ci NOT NULL,
      `VERSION` varchar(16) collate latin1_general_ci NOT NULL default '1.0',
      PRIMARY KEY  (`FILE_ID`),
      KEY `FK_MATCHES` (`RES_ID`),
      KEY `FK_ON` (`DOCSERVER_ID`),
      FULLTEXT KEY `FT_AUTHOR` (`AUTHOR`),
      FULLTEXT KEY `FT_TYPIST` (`TYPIST`),
      FULLTEXT KEY `FT_AUTHOR_TYPIST` (`AUTHOR`,`TYPIST`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
    Une partie du contenu de la table est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    +--------+-----------------+-----------------+---------------+------------+
    | RES_ID | AUTHOR          | TYPIST          | CREATION_DATE | PUB_DATE   |
    +--------+-----------------+-----------------+---------------+------------+
    |      1 | Inconnu         | Léquipé Perrine | 2006-07-18    | 2007-05-21 |
    |      6 | Perrine Léquipé | Léquipé Perrine | 2007-04-04    | 2007-05-21 |
    |      5 | Perrine Léquipé | Léquipé Perrine | 2007-04-04    | 2007-05-21 |
    |      7 | Perrine Léquipé | Léquipé Perrine | 2007-04-04    | 2007-05-21 |
    |      8 | Perrine Léquipé | Léquipé Perrine | 2007-05-21    | 2007-05-22 |
    |      9 | Perrine Léquipé | Léquipé Perrine | 2005-02-15    | 2007-05-22 |
    |     10 | Inconnu         | Léquipé Perrine | 2006-07-17    | 2007-05-23 |
    |     11 | Perrine Lequipe | Léquipé Perrine | 2007-05-20    | 2007-05-23 |
    +--------+-----------------+-----------------+---------------+------------+
    Note : il y a volontairement pas d'accent à "Léquipé" pour la resource 11 pour AUTHOR.

    Le soucis, c'est que si j'effectue une recherche sur l'auteur (AUTHOR) par exemple comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select ... from files as f where match(f.AUTHOR) against('inconnu') limit 0,101
    Il me retourne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    +--------+---------+---------------+
    | RES_ID | AUTHOR  | CREATION_DATE |
    +--------+---------+---------------+
    |      1 | Inconnu | 2006-07-18    |
    |     10 | Inconnu | 2006-07-17    |
    +--------+---------+---------------+
    Mais si ma requête est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select ... from files as f where match(f.AUTHOR) against('Perrine') limit 0,101
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select ... from files as f where match(f.AUTHOR) against('Léquipé') limit 0,101
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select ... from files as f where match(f.AUTHOR) against('Perrine Léquipé') limit 0,101
    Il n'y AUCUN résultat.

    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select ... from files as f where match(f.AUTHOR) against('lequipe') limit 0,101
    On a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    +--------+-----------------+---------------+
    | RES_ID | AUTHOR          | CREATION_DATE |
    +--------+-----------------+---------------+
    |     11 | Perrine Lequipe | 2007-05-20    |
    +--------+-----------------+---------------+
    Ça me semble pas très logique ... on dirait qu'il y a un problème avec les accents ! ??

    De plus, pour la ressource n°11, l'auteur est "Perrine Lequipe" et il trouve avec "Lequipe" mais pas "Perrine" !!!
    C'est incompréhensible ...

    Si quelqu'un a une idée du pourquoi du comment, je suis preneuse !

    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Ah bah non ça n'a rien à voir !! Je n'ai pas tout de suite fait le rapprochement :

    cela vient du fait que si la moitié ou plus des enregistrements d'une table contient le mot en question, cela ne retourne aucun résultat car ce mot est alors considéré comme peu pertinent !!

    Donc je n'ai rien dit, tout va bien si ce n'est que j'ai perdu du temps !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probléme avec la recherche
    Par lila23 dans le forum Débuter
    Réponses: 9
    Dernier message: 07/03/2009, 10h48
  2. problème avec if, recherche non explicite
    Par beebe dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 26/09/2008, 13h51
  3. Problème avec la recherche FULLTEXT
    Par izbing dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/01/2008, 22h13
  4. [Explorer] Problème avec la recherche
    Par marcel marie dans le forum Windows XP
    Réponses: 3
    Dernier message: 16/08/2007, 08h47
  5. [0.8] Problème avec la recherche MVC (Tuto d'Akrabat)
    Par developpeur_mehdi dans le forum Zend_Db
    Réponses: 4
    Dernier message: 09/03/2007, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo