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 :

comment contruire le moteur recherche


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut comment contruire le moteur recherche
    Bonjour a tous
    j'essaye de trouver un moyen de faire un moteur de rercherche sur des articles d'electronique. Le problème avec ces références il y a des chiffres,des lettre et des caractères spéciaux.
    voici ce que j'ai essayé mais ca ne fonctionne pas il trouve rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT *FROM matable WHERE MATCH (ref) AGAINST ('tsx')
    dans ma table il y a par exemple 2 produit qui s'appellent tsx17 et tsx7
    pouquoi avec cette requete il ne trouve rien, j'aimerais qu'il puisse afficher au moin
    tsx17 et tsx7
    vous aller me dire d'utiliser des % entre tsx mais j'aimerai que mon moteur
    sache trouver cette article même si l'on rentre
    ts7 ou encore sx7
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $find_device=" SELECT * FROM matable WHERE ref LIKE '%$article%' ORDER BY id_article ";
    merci de vos réponses

  2. #2
    Membre expérimenté
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    Salut,

    la recherche Full text ne fonctionne pas comme un :

    Il y a plusieurs procédés utilisés pour construire des index Full text, qui sont des index inversés :
    - lexémisation
    - suppression des mots vides de sens
    - extension de la requête aux synonymes
    - n-grammes
    - etc.

    En fait, la lexémisation consiste à découper un mot pour ne conserver que sa racine (plus exactement le lexème, c'est à dire le morphème lexical du lemme).

    Par exemple, pour le terme capitalisme, un algorithme de lexemisation ne conserverait que la racine "capital", et pour "capitaux'', il supprimerait la forme pluriel pour donner "capital".
    C'est ainsi qu'un recherche sur "capitaux" retournera les documents contenant capital ou "capitalisme".
    Dans ton cas, les chiffres à la fin de tes codes produits ne seront pas découpés par l'algorithme.
    Tu dois avoir un fichier stemming.conf (le terme anglais pour lexemisation est stem) qui te permet de configurer le "découpage" des termes.
    Sinon, avec MySQL, il y a une longueur minimale pour qu'un mot soit utilisé pour la recherche (4 caractères).
    C'est peut être aussi pour ça que tu n'obtiens pas de correspondance.

    Des explications sont fournies ici.

  3. #3
    Membre expérimenté
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    je me suis renseigné et le stemming n'est supporté que pour la langue anglaise et uniquement à partir de MySQL 5.1 donc je te conseille de voir ailleur, si tu as du temps et que tu es motivé jette un coup d'oeil sur Apache Solr, c'est un excellent moteur de recherche

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    merci de toute ces informations, je vais jeter un coup d'oeil
    sinon la solution des regex est mieux adapté pour ces genres de recherche?

  5. #5
    Membre expérimenté
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    oui, c'est plus adapté

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    peut ton extraire tous les caractère (dièse, point,tiret) d'une variable ?
    exemple $variable = moniteur_277#6
    $variable extrait serai moniteur2776
    comment procède t'on pour faire cela? est ce faisable?

    j'extrait tout cela car dans la base de donnée j'ai 2 champs

    1 le champ référence// c'est la référence en entier
    2 le champ réf//c'est le la même référence mais on a envlever les
    tirer,espace, slash/dièse....

    voici la regex que je pense utuilise avant de le chercher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #[^&é"'(-è_çà)=+~#\^@°{}$¨µ*ù%!§;,.<>]#
    mais avec le signe ^ il ne vas pas être en conflie avec les autres même signe?

Discussions similaires

  1. [MySQL] comment intergrer un moteur de recherche interne ?
    Par toufik1986 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 16/01/2008, 21h41
  2. Comment construire un moteur de recherche
    Par zizo89 dans le forum Delphi
    Réponses: 1
    Dernier message: 06/05/2007, 21h18
  3. [Tableaux] comment faire un moteur de recherche en php
    Par lindouchine dans le forum Langage
    Réponses: 4
    Dernier message: 23/03/2006, 23h14
  4. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

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