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 :

Finesse avec full text sur l'orthographe, comment être moins sensible


Sujet :

PHP & Base de données

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

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Points : 102
    Points
    102
    Par défaut Finesse avec full text sur l'orthographe, comment être moins sensible
    Bonjour,

    J'utilise un moteur de recherche en full text, il foncctionne très bien à conditions que les résultats de la bd correspondent exactement aux termes recherchés

    Si je tape le terme "annuaire" il ne va me retourner que les lignes avec exactement cet orthographe, par contre si je tape "annuaires"
    il ne va pas m'afficher les résultats oui il y a "annuaire" sans s et j'avoue que c'est ennuyeux

    Exist'il un solution direct ?

    Exemple de ma requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	 // +------ Requete recherche + poids des critères -------+     	
      	 $query = "SELECT id, nomsite, description, mcles, url, urlrss, texte,( 	
      	 (1.95 * (MATCH (nomsite) AGAINST ('$mots2' IN BOOLEAN MODE))) 	
      	  + (1.65 * (MATCH (description) AGAINST ('$mots2' IN BOOLEAN MODE))) 	
      	  + (1.05 * (MATCH (mcles) AGAINST ('$mots2' IN BOOLEAN MODE))) 	
      	  + (1.90 * (MATCH (url) AGAINST ('$mots2' IN BOOLEAN MODE)))
          + (1.50 * (MATCH (texte) AGAINST ('$mots2' IN BOOLEAN MODE)))	  ) AS relevance FROM $tableannu 	
      	  WHERE ( MATCH (nomsite , description, mcles, url, texte) AGAINST ('$mots2' IN BOOLEAN MODE) ) AND valid='1' HAVING relevance > 0 ORDER BY relevance DESC LIMIT $debut,$limit";

    Je vous vois venir.. et me dire, il suffit de taper "annuaire*" et il va chercher automatiquement l'ensemble des résultats avec "annuaire" et "annuaires" mais le but n'est pas d'imposer
    une nouvelle recherche aux visiteurs mais que la recherche soit moins sensible et se fasse en une fois

    D'avance merci pour vos solutions
    Cordialement
    Yule

  2. #2
    Membre actif Avatar de Snooky68
    Homme Profil pro
    Développeur Web/Python/PHP
    Inscrit en
    Mai 2006
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web/Python/PHP
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 273
    Points : 212
    Points
    212
    Par défaut
    Salut,

    Tu devrais regarder du coté de "SoundEx" en mysql. Je pense que sa correspond pas mal a se que tu cherche. Par contre c'est très lourd à l'utilisation, donc à voir!
    /***********************
    Aucune responsabilité n'est engagée sur la lisibilité du message ou les éventuels dommages qu'il peut engendrer.
    Les fautes d'orthographes sus-citées sont déposées auprès de leurs propriétaires respectifs et soumis au copyright. Toutes copies sera sévèrement désapprouvé.
    ************************/

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux ajouter le "*" toi même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AGAINST ('$mots2*' IN BOOLEAN MODE)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre régulier
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Points : 102
    Points
    102
    Par défaut
    Hello,

    Pas aussi simple car $mots peut être un mot ou une phrase et si tu ajoutes un * à annuaires il ne va pas rechercher "annuaire" donc c'est pas une solution

    Pour la soundex, je ne connais pas et si c'est lourd... c'est pas bon..lol

    A+
    Yule

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    N'utilise pas le Boolean mode alors.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre régulier
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Points : 102
    Points
    102
    Par défaut
    Re,

    oui c'est pas faux mais ça revient à enlever une option bien utile

    J'en déduis qu'exploiter le full text avec le boléean c'est pas si top que ça, fasse au Like... M^me si ça fait 5 ans que je l'utilise...

    Depuis le temps que c'est à faire.. http://dev.mysql.com/doc/refman/5.0/...text-todo.html grrrrrrrr

    C'est bien dommage que le fulltext soit si peu modulable

    Merci tout de même
    Yule

Discussions similaires

  1. afficher des image avec du text sur un RichTextBox VB NET 2.00
    Par tawrirte dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 06/04/2012, 22h09
  2. Réponses: 0
    Dernier message: 02/12/2011, 11h18
  3. [Openlayers] Bulles de texte sur carte OSM - Comment les agrandir ?
    Par Senelya dans le forum SIG : Système d'information Géographique
    Réponses: 1
    Dernier message: 23/07/2010, 17h05
  4. Index full text sur champs multiples
    Par manu_71 dans le forum Outils
    Réponses: 6
    Dernier message: 22/02/2007, 00h41
  5. Full-text sur plusieurs tables ?
    Par xender dans le forum Outils
    Réponses: 8
    Dernier message: 26/01/2007, 22h50

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