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 :

Pondération des colonnes dans une recherche fullText


Sujet :

Requêtes MySQL

  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut Pondération des colonnes dans une recherche fullText
    J'ai actuellement une recherche fulltext qui fonctionne, mais je voudrais pouvoir y mettre plus de consistance.

    En effet mon indexe fulltext porte sur 4 colonnes, et je voudrais pouvoir pondérer le ranking de certaine colonnes !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     $sql = 'SELECT id_art , des1_art as desi, desc_art as descr, util_art as util, MATCH (des1_art, desc_art, util_art, keywords_art) AGAINST ("'.$searchstring.'" IN BOOLEAN MODE) AS Rank '.
               'FROM articles '.
    	   'WHERE MATCH (des1_art, desc_art, util_art, keywords_art) '.
    	   'AGAINST ("'.$searchstring.'") '.
    	   'ORDER BY Rank DESC';
    Par exemple la colonne de desi_art doit avoir un poids plus important que la colonne util_art par exemple.

    Me faut-il créer des indexes supplémentaires faire des match individuels sur les colonnes et faire une somme des ranks pondérés puis faire le order sur la somme pondérée ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    en créant un indexe fulltext pour la colonne la plus importante j'arrive à ceci ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT id_art , des1_art as desi, desc_art as descr, util_art as util, 
    MATCH (desc_art) AGAINST ("gaine" IN BOOLEAN MODE) AS Rank0,
    MATCH (desc_art, desc_art, util_art, keywords_art) AGAINST ("gaine" IN BOOLEAN MODE) AS Rank1,  
    MATCH (des1_art) AGAINST ("gaine" IN BOOLEAN MODE)*10 + MATCH (des1_art, desc_art, util_art, keywords_art) AGAINST ("gaine" IN BOOLEAN MODE) As FullRank  
    FROM articles 
    WHERE  MATCH (des1_art, desc_art, util_art, keywords_art)
    AGAINST ("gaine")
    ORDER BY FullRank DESC
    je ne peux pas faire l'opération du FullRank avec les Alias ???

    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MATCH (des1_art) AGAINST ("gaine" IN BOOLEAN MODE)*10 + MATCH (des1_art, desc_art, util_art, keywords_art) AGAINST ("gaine" IN BOOLEAN MODE) As FullRank
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Bon hé bien il semblerait que l'indexe individuel par colonne auquel on attribue un coefficient de pondération soit la solution.

    Si toutefois il y avait une autre solution mois lourde, je suis preneur.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/03/2008, 20h44
  2. Liaison des colonnes dans une bibliothèque de doc
    Par chrisade dans le forum SharePoint
    Réponses: 4
    Dernier message: 28/12/2007, 17h18
  3. Ordre des colonnes dans une table
    Par c.langlet dans le forum Administration
    Réponses: 3
    Dernier message: 16/05/2007, 18h39
  4. Regrouper des colonnes dans une ligne
    Par aturlan dans le forum Access
    Réponses: 1
    Dernier message: 11/01/2006, 21h05
  5. Réponses: 1
    Dernier message: 22/12/2005, 09h03

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