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

Optimisations SGBD Discussion :

Pertinence des résultats sur une recherche de Tag


Sujet :

Optimisations SGBD

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Pertinence des résultats sur une recherche de Tag
    Bonjour,

    Je suis en train de me poser quelques questions sur la réalisation d'une base de donnée et sur l'optimisation de celle ci.
    Voila mon soucis :
    J'aimerai suivant la recherche de l'utilisateur sur des tag, retourner le topic le plus pertinent.

    Exemple concret :
    J'ai 4 topics avec un ou plusieurs tag avec une ou pas de note.

    Topic A
    --> Tag A
    --> Note 5

    Topic B
    --> Tag A
    --> Pas de note

    Topic C
    --> Tag A
    --> Tag B
    --> Tag C
    --> Tag D

    Topic D
    --> Tag A
    --> Tag D

    J'aimerai qu'avec une recherche sur le Tag A, le résultat soit :
    Topic A
    Topic B
    Topic D
    Topic C

    Sur une recherche avec le Tag D :
    Topic D
    Topic C


    Explication des pondérations :
    Moins le topic est affecté à des tag plus il est pertinent sur celui affecté.
    Un topic ayant une note supérieur à la moyenne sera plus pertinent qu'un topic sans note.

    Comment dois je réaliser mes tables avec une base de données de millier de tag et d'une dizaine de milliers de topics ?

    Faut il créer une tables temporaire pour chaque Tag, et faire un select bidon dessus (Cela me parrait fous de créer des milliers de table )
    Faire une table avec tous les tags, mais ça veut dire qu'il y aurait des millions de ligne dans cette table.
    Faut il faire plusieurs requetes pour retourner le resultat voulu (risque de surcharge du serveur)

    Que me conseillez vous ?

    Merci de votre réponse.

    Cordialement.
    Romain


    PS: Si vous avez des sujets interressant sur Facebook, sur la pertinence des résultats proposés, je suis preneur.
    Je me demande toujours comment il fond pour nous proposer une liste d'amis que nous pouvons connaitre.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Définitivement, il vous faut une table Tag, une table Topic, et une table de correspondance.

    Dix millions de lignes, ce n'est pas un problème pour les SGBD / machines d'aujourd'hui.

    Des optimisations existent mais elles sont propres à chaque SGBD.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Définitivement, il vous faut une table Tag, une table Topic, et une table de correspondance.

    Dix millions de lignes, ce n'est pas un problème pour les SGBD / machines d'aujourd'hui.

    Des optimisations existent mais elles sont propres à chaque SGBD.

    Oui je suis d'accord sur le principe de base et je fais déjà comme ça.
    Mais comment afficher les résultats pertinemment.
    Si je fais un select avec jointure je ne vais pas avoir le résultat souhaité.

    Je ne veux pas que l'affichage des résultats se face sur le nom du post ou sur la date,
    j'aimerai qu'il soit suivant la pertinence de plusieurs critères tel que le nombre de tag associé et la note des topics.

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    J'ai du mal à cerner le fond de votre problème.
    Qu'est-ce qui ne fonctionne pas pour le moment ?

    Est-ce la modélisation de votre schéma, l'écriture de la requête, l'affichage de celle-ci via votre application ?

    A chaque question la réponse est différente.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Je parts sur le principe qu'il y a une table Topic, une table Tag et une table de liaison, ça c'est normal

    Là viens le souci de retourner les résultats pertinemment
    Je ne vois pas comment faire.
    Je me demande s'il n'ai pas préférable de faire des tables temporaires actualisée genre trois fois par semaine, pour éviter les surcharges.
    L'utilisateur est pratiquement obligé de passer par une recherche par Tag pour trouver les Topics.

    Mon problème viendrait plutot du temps d'exécution d'une tel requete par rapport à une requête simple sur une table temporaire qui aurait déjà eu des traitements pour des résultats pret à l'affichage.

  6. #6
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Je viens de lire Collective Intelligence in action, très bon livre sur le sujet. À la fin il aborde les solutions de amazon, de google news et de netflix. Mais le reste parle aussi des tag et tout ce qu'il faut pour faire entre autre un système de recommandation. Très axé Java.

    Pour la pondération des tags, il faut normaliser.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Jester Voir le message
    Pour la pondération des tags, il faut normaliser.

    Qu'est ce que tu entends par normalisé ?

  8. #8
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    pour tout topic, somme(tags) = 1

    mais il me semble qu'il te manque beaucoup d'éléments que je n'ai pas envie d'écrire d'où te conseiller un bouquin assez complet et bien fait sur le sujet.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci de tes réponses Jester.

    Je vais bien sur prendre connaissance de ce livre dès que je pourrais.
    En attendant je suis tombé sur ce lien http://www.1ere-position.fr/blog/alg...google-devoile
    Il explique le système de pondération, mais ce n'est pas trop mon problème.

    Bon nous ne sommes pas sur la même grandeur qu'avec Google, mais j'aimerai savoir si tout ces traitements sont a faire au préalable dans une table temporaire ou alors à la volé pour chaque requete utilisateur.

  10. #10
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Dans un processus séparé qui crée une table de lookup.

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/01/2015, 06h57
  2. [MySQL] Récupération des valeurs sur une recherche multitable
    Par flozza dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/01/2012, 17h23
  3. Remplissage listbox à partir des résultats d'une recherche
    Par typhoon751 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/11/2010, 10h36
  4. Réponses: 2
    Dernier message: 05/05/2010, 12h16
  5. [MySQL] affichage des résultats d'une recherche dans la base
    Par dolf13 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 21/11/2006, 17h18

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