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

PHP & Base de données Discussion :

Donner du poids à une requête pour classer les résultats


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut Donner du poids à une requête pour classer les résultats
    Bonjour,

    J'essaye de comprendre et de faire fonctionner un script php avec une bd texte à une BDD Mysql


    Terme = colonne de ma bdd (dico en français de 90'000 mots)
    $keywordClean = "un mot clef"


    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
    18
     
    <?php
    // Compare un mot ($mot) à une liste ($mot)
    // en utilisant la fonction ($fonction).
    // Exemple: $resultats = filtre($mot,$liste,'soundex');
    function filtre($mot,$liste,$fonction)
    {
        $resultat = array();
        $mot_p = call_user_func($fonction,$mot);
        foreach($liste as $m)
        {
            $p = call_user_func($fonction,$m);
            $pourcentage = levenshtein($mot_p,$p)*100/strlen($mot);
            if ($pourcentage<=5) $resultat[]=$m;
        }
        return $resultat;
    }
    ?>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $requetea1 ="SELECT	* FROM dico
    WHERE SOUNDEX(terme) LIKE SOUNDEX('$keywordClean') AND levenshtein(terme, '$keywordClean')<=2
    ORDER BY -id DESC, -levenshtein(terme, '$keywordClean') DESC
    LIMIT 5";
    ?>
    Tout se passe correctement si ce n'est que la sortie de ma BD se fait par un ordre ID qui n'a aucun poids et ne relève pas de la réalité souhaitée.
    Comment donner un poids comme l'exemple ci-dessus (pourcentage) sur ma requête mysql ? probablement avec MATCH mais je sèche...

    Merci pour votre aide
    Yule

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2009
    Messages : 35
    Par défaut
    Bonjour
    oui c'est Match avec fulltext
    un lien:
    https://omiossec.developpez.com/mysql/fulltext/etudes/

  3. #3
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut
    Bonjour,

    Merci , ça confirme ce que je mentionnais dans mon post "probablement" match... et Again , AS relevance etc... Mais franchement, je vois toujours pas comment m'y prendre

    Je vais essayer de contourner le pb autrement et me sortir de cette impasse

    BOnne bonne
    Yule

Discussions similaires

  1. Une requête pour lister les jours entre deux dates
    Par clavier12AZQSWX dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/02/2020, 14h31
  2. Réponses: 2
    Dernier message: 06/11/2012, 14h11
  3. Réponses: 2
    Dernier message: 19/10/2012, 13h55
  4. [AC-2007] Requête pour Changer les Résultats d'une autre requête
    Par Cloé_de_Bourg dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/11/2009, 13h33
  5. [ODBC] Exécuter une requête et afficher les résultats
    Par LawKnight dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/04/2009, 23h47

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