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 :

SELECT MATCH AGAINST n'aboutit pas


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut SELECT MATCH AGAINST n'aboutit pas
    Bonjour,

    Dans le cadre d'une recherche FULLTEXT entre deux tables, la recherche n'aboutit pas.

    J'ai une table temporaire MyISAM avec index FULLTEXT contenant environ 8 000 000 de séquences ADN non redondantes.

    target_sequence_myisam
    id INT,
    seq TEXT,
    FULLTEXT(seq)

    Cette table est la copie (INSERT INTO target_sequence_myisam SELECT * FROM target_sequence) d'une table InnoDB.

    En faisant une recherche pour une séquence étant dans cette table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id from target_sequence_myisam where MATCH(seq) AGAINST('GTAGGGTGCAAGGCAGCCAGGTCTCCGATCCTTTCCGCAGCATGGGGAAGCACAGGCTCCGGAGCCTGGCCCTGCTGCCACTGCTGCTGCGGCTGCTGCTGCTGCTGCTGCCCACCGATGCCTCAGCTCCACAAAAACC');
    L'ajout de 'IN BOOLEAN MODE' ne change rien.

    J'ai 'empty set', alors qu'une recherche WHERE seq = 'GTAGGGTGCAAGGCAGCCAGGTCTCCGATCCTTTCCGCAGCATGGGGAAGCACAGGCTCCGGAGCCTGGCCCTGCTGCCACTGCTGCTGCGGCTGCTGCTGCTGCTGCTGCCCACCGATGCCTCAGCTCCACAAAAACC' fonctionne...

    Dans la doc, il est écrit que la recherche FULLTEXT ne renvoie rien si 50% ou plus de matchs sont effectifs, en revanche rien sur la limitation en terme de caractères trop grands, au contraire, la taille du AGAINST devant être au moins de 4 caractères.

    Pourtant, en ayant fait un petit script sur un nombre limité d'entrée, sur 10 recherches, la recherche FULLTEXT aboutit pour une séquence de 53 caractères, sachant que la grande majorité est plus grande que 100 caractères (jusqu'à 12 000).

    Pourriez-vous m'éclairer là-dessus ?

    En vous remerciant,

    C. Tobini

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut
    En fouillant un peu j'ai la réponse: la variable ft_max_word_len est plate-forme dépendante et est de 84 pour la RedHat. Il est donc impossible de faire une indexation sur plus de 84 caractères.

    C. Tobini

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

Discussions similaires

  1. [C#][.net2] Sous select et jointure ne passe pas
    Par VincenzoR dans le forum Windows Forms
    Réponses: 25
    Dernier message: 19/01/2006, 11h48
  2. [mySQL]Requete qui prend 100 % du CPU et n'aboutit pas
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 20
    Dernier message: 12/10/2005, 09h36
  3. Select dans SQL n'accepte pas la virgule
    Par da_latifa dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/10/2005, 16h22
  4. Pb de selection qui ne se fait pas
    Par Stef.proxi dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/08/2004, 10h54
  5. 2 SELECT Qui ne s'entendent pas très bien entre eux :(
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/08/2004, 16h46

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