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

Java Discussion :

Moteur de recherche avec critères


Sujet :

Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Moteur de recherche avec critères
    Bonjour à tous,

    Dans le cadre d'un projet universitaire, nous devons développer un site e-commerce fonctionnant sur un serveur Glassfish avec utilisation des EJB.

    Nous souhaitons mettre en place un moteur de recherche avec critères (catégorie, intervalle de prix, libellé, etc.)

    Notre professeur nous impose l'interface suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        public void saveProduct(Product product);
        public Product getProductById(Integer id);
        public Product getProductByReference(String reference);
        public List<Product> getProductsByLabel(String label);
        public List<Product> getProductsByCategory(Category category);
        public List<Product> getProducts();
        public List<Product> getProductsByPrice(Double price);
        public List<Product> getProductsByPriceRange(Double price1, Double price2);
    Jusque là, pas de problème.

    Notre question est d'ordre pratique : quelle est la meilleure façon de procéder lorsque l'utilisateur rentre plusieurs critères ?

    Nous avons penser à faire de la manière suivante :

    Pour chaque critère (catégorie, prix, libellé, etc.), nous récupérons une liste des produits propre à chaque critère (liste1 = getProductsByCategory(1), liste2 = getProductsByPrice(25), etc.) puis nous recherchons tous les produits présents dans l'ensemble des listes. Si un produit est présent dans toutes les listes, alors il correspond aux critères de recherche.

    Le fait de récupérer autant de listes ne risque t-il pas de nuire aux performances du serveur ? Par exemple, la requête de tous les produits de catégorie 1 va ramener disons 10000 entrées, pour le prix 6000 entrées, etc.

    Si cette méthode n'est pas la bonne, comment pouvons nous procéder ?

    Merci d'avance pour vos réponses

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    une fois que vous avez une liste, filtrer suivant les autres critères ne nécessite plus de requete DB, explorer simplement votre résultat. Evidement, le plus simple serait d"avoir sur votre service EJB un méthode qui, directement, fait votre rechecher multicritère, c'est le plus propre.

Discussions similaires

  1. [Débutant] Moteur de Recherche avec plusieurs critères
    Par saidensak amanar dans le forum Linq
    Réponses: 2
    Dernier message: 17/07/2014, 15h08
  2. Moteur de recherche multi critères avec filtre
    Par kina17 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 08/04/2008, 19h33
  3. [MySQL] Moteur de recherche avec accents
    Par NiX31 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/01/2007, 12h27
  4. moteur de recherche avec requete sql
    Par hottnikks_79 dans le forum ASP
    Réponses: 4
    Dernier message: 03/08/2006, 03h58
  5. Réponses: 6
    Dernier message: 04/11/2005, 17h09

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