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

ASP.NET Discussion :

Script efficace pour moteur de recherche d'articles


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Par défaut Script efficace pour moteur de recherche d'articles
    Bonjour à tous,

    Voici le script pour générer le filtre de ma requête de mon moteur de recherche pour trouver des articles du shop
    Dans lequel vTabFiltre contient les mots de la recherche.
    Par exemple pour une recherche "Ordinateur usb-2 TTRDF/2GB" le vTabFiltre contient :
    Ordinateur
    usb
    2
    TTRDF
    2GB


    Je découpe la chaine sur tout les caractères spéciaux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    For vCpt = 0 To UBound(vTabFiltre)
         If Trim(vTabFiltre(vCpt)) <> "" Then
              If vFiltre <> "" Then vFiltre &= " AND "
              vFiltre &= " (CODE LIKE '%" & vTabFiltre(vCpt) & "%'" & _
                         " OR DESCR LIKE '%" & vTabFiltre(vCpt) & "%' COLLATE French_CI_AI" & _
                        " OR GROUPE LIKE '%" & vTabFiltre(vCpt) & "%' COLLATE French_CI_AI" & _
                        " OR ONGLET LIKE '%" & vTabFiltre(vCpt) & "%' COLLATE French_CI_AI" & _
                        " OR MARQUE LIKE '%" & vTabFiltre(vCpt) & "%' COLLATE French_CI_AI)"
          End If
    Next
    Il faut recherche à la fois dans le code, la description, le groupe, le sous-groupe et la marque.

    Ce code est il adapté à votre avis ? Car le souci c'est que quand le nombre de mots de la recherche augment le temps d’exécution de la requête augment considérablement.

    Y a-t-il mieux selon vous ?

    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Bonjour,

    une première remarque pour commencer : utilise les requêtes paramétrées pour gagner en lisibilité et sécuriser ton application.

    Sur le fond, ce n'est pas tant le code qui compte que la modélisation de ta base et le paramétrage de tes tables et colonnes.
    Si tu as une grosse quantité de données et de nombreux accès ton application, il est fort probable que ta méthode soit rapidement inadaptée. Si ce n'est pas le cas, la solution n'est peut-être pas optimale mais fonctionnera.
    Si tu es dans le premier cas, il faut peut-être que tu t'orientes vers des recherches full-text mais il faudra alors reprendre une partie de ta modélisation.

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    une première remarque pour commencer : utilise les requêtes paramétrées pour gagner en lisibilité et sécuriser ton application.
    et en performances

    Citation Envoyé par calagan99 Voir le message
    Sur le fond, ce n'est pas tant le code qui compte que la modélisation de ta base et le paramétrage de tes tables et colonnes.
    Si tu as une grosse quantité de données et de nombreux accès ton application, il est fort probable que ta méthode soit rapidement inadaptée. Si ce n'est pas le cas, la solution n'est peut-être pas optimale mais fonctionnera.
    Si tu es dans le premier cas, il faut peut-être que tu t'orientes vers des recherches full-text mais il faudra alors reprendre une partie de ta modélisation.
    Je ne pourrai apporter en complément qu'une unique chose : la désignation qui est donnée en exemple semble porteuse d'informations : 2GB est une quantité de mémoire, et donc devrait être un attribut. Idem pour USB-2 qui pourrait être orthographié de plusieurs façons différentes d'un produit à l'autre.
    Par conséquent, la désignation de ton article doit comportement une description la plus "française" possible, pas de codes, et surtout, pas d'attributs !
    En revanche, dans ton moteur de recherche, des cases pour rechercher les articles avec l'attribut usbtype = 2, ram = 2, etc.
    Ceci permettra d'améliorer considérablement à la fois la vitesse de traitement, la maintenabilité de ton fichier de données, et la qualité des résultats.

    En effet, si je fais une recherche "ordinateur usb 2"
    => Avec ton système actuel, vu que je vais chercher "ordinateur", "usb" et "2" séparément, je vais aussi retrouver "Cable usb pour IPad2 pour se connecter à un ordinateur"
    Sauf que moi, je veux un ordinateur, pas un câble...

  4. #4
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    => Avec ton système actuel, vu que je vais chercher "ordinateur", "usb" et "2" séparément, je vais aussi retrouver "Cable usb pour IPad2 pour se connecter à un ordinateur"
    Sauf que moi, je veux un ordinateur, pas un câble...
    Merci pour vos réponse.

    Hélas je n'ai pas trop le choix du "formatage" de la BD et je dois donc me baser sur cette description.

    J'essayais de trouver quelque chose de plus optimal.

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 89
    Par défaut
    Voici une solution que je mettrais en place : je chercherais tout ce qui contient "Ordinateur" ET "TTRDF" et dans les résultats je chercherais ensuite "USB2" (si je trouve je les place en premiers, sinon ensuite) (en retravaillant la chaine de caractères pour choper USB 2, USB-2, USB/2,...) puis pour avoir un classement par pertinence...

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Citation Envoyé par nid4mail Voir le message
    en retravaillant la chaine de caractères pour choper USB 2, USB-2, USB/2
    Ca c'est de la recherche FullText

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/05/2010, 20h08
  2. Dictionnaire sémantique pour moteur de recherche?
    Par Glavio dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 20/07/2007, 11h36
  3. Probleme vba pour moteur de recherche ACCESS
    Par sylvaindenisbe dans le forum Modélisation
    Réponses: 1
    Dernier message: 10/05/2007, 14h30
  4. Algorithme d'indexation pour moteur de recherche
    Par caspertn dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 24/04/2006, 16h57
  5. Problème requete pour moteur de recherche
    Par vincedjs dans le forum Requêtes
    Réponses: 48
    Dernier message: 15/03/2006, 14h47

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