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

Algorithmes et structures de données Discussion :

Meilleur algorithme d'indexation?


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 11
    Par défaut Meilleur algorithme d'indexation?
    Bonjour a tous,

    J'ai un catalogue de beaucoup de livre et je veux les indexer et les stocker sur le disque(le file system directement) (pas dans une BD). Une première question est ce que l'accès a mon catalogue va être rapide selon vous?

    Une autre question, quelle est le meilleur alogo d'indexation?

    Je vous remercie.

  2. #2
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Tout dépend de tes critères dans ce que tu appelles le meilleur algo.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 11
    Par défaut
    Merci PRomu@ld, ce qui m'intéresse c'est plus le temps d'accès(consommation système, m'importe peu),donc meilleur algo pour moi dans ces conditions veut dire rapide.

    Merci

  4. #4
    Membre émérite
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Par défaut
    Bonjour,

    Je te propose de regarder les algorithmes d'indexations sur les colonnes d'une base de données ( btree par exemple ). Ceci te donnera des idées.

    Ceci dit, tu risques fort de réinventer la roue et c'est loin d'être simple de gérer les pannes, les crashs,etc... Si ce qui te gène, c'est l'aspect réseau de la connexion à une BDD, regarde du coté de sqlite.

    Bonne journée

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 11
    Par défaut
    Citation Envoyé par bretus Voir le message
    Bonjour,

    Je te propose de regarder les algorithmes d'indexations sur les colonnes d'une base de données ( btree par exemple ). Ceci te donnera des idées.

    Ceci dit, tu risques fort de réinventer la roue et c'est loin d'être simple de gérer les pannes, les crashs,etc... Si ce qui te gène, c'est l'aspect réseau de la connexion à une BDD, regarde du coté de sqlite.

    Bonne journée
    Merci pour le tuyau, je vais regarder cette algo. Pour ce qui est de de la BDD, non ce n'est pas la connexcion qui me pose problème, mais c'est plutôt des contraintes de temps de réponse. Sqlite est certes légère et open source, mais je n'ai aucun benchmark quand a son support pour traiter des dizaines de millions d'entrées!

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par piasoham Voir le message
    Bonjour a tous,

    J'ai un catalogue de beaucoup de livre et je veux les indexer et les stocker sur le disque(le file system directement) (pas dans une BD). Une première question est ce que l'accès a mon catalogue va être rapide selon vous?

    Une autre question, quelle est le meilleur alogo d'indexation?

    Je vous remercie.
    Que les données soient stockées sur le disque, ok (surtout pour les gros volumes). Mais pourquoi ne pas vouloir stocker l'index dans une BD ou au moins une table ? Il y a une raison technique ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 11
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Que les données soient stockées sur le disque, ok (surtout pour les gros volumes). Mais pourquoi ne pas vouloir stocker l'index dans une BD ou au moins une table ? Il y a une raison technique ?
    Merci pour la réponse. Y a pas de raison technique a cela. Qu'en pense tu des temps d'accés a une BDD (Mysql ou Postgres) qui abrite des millions d'entrées?

    Merci.

  8. #8
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Une autre question, quelle est le meilleur algo d'indexation?
    • Veux-tu faire de l'indexation en texte intégral pour ensuite faire un moteur de recherche ?
    • Quelles informations désires-tu dans l'index?
    • Quelles doivent être les fonctionnalités du moteur de recherche ?

  9. #9
    Membre émérite
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Par défaut
    Bonsoir,

    Pour le benchmark de sqlite, ça doit pouvoir se faire maison.

    Citation Envoyé par piasoham Voir le message
    Qu'en pense tu des temps d'accés a une BDD (Mysql ou Postgres) qui abrite des millions d'entrées?
    Honnêtement, je pense que le but de ces engins n'est pas que de stocker des tables de contacts pour un site web.

    Après, je pense qu'il y a beaucoup de monde qui travaille dessus et que pour faire quelque chose capable de rivaliser, il faut s'accrocher. Quand tu commences à implémenter ce genre de système, que tu commences à poser la gestion des transactions, que tu penses aux pannes,... Quand tu commences à descendre dans les couches systèmes et parler en terme de clusters; Tu te dis que tu perds ton temps pour gagner peu et qu'au final, tu ne feras pas mieux.

    Ensuite, il existe quelques choses de merveilleux en architecture logiciel : L'abstraction. Si tu montes une abstraction ou que tu en utilises une, pour l'accès à ta base de données, tu pourras changer à souhait le moteur de gestion de base de données.

    Ceci dit, tu ne perds pas ton temps à rechercher les meilleurs algorithmes d'indexations même si tu choisis la solution SGBD : Tu devras dans tous les cas choisir l'indexe qui convient le mieux.

    Je te laisse aux mains de monsieur Graffito

  10. #10
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par piasoham Voir le message
    Merci pour la réponse. Y a pas de raison technique a cela. Qu'en pense tu des temps d'accés a une BDD (Mysql ou Postgres) qui abrite des millions d'entrées?

    Merci.
    Les temps d'acces dépendent pour beaucoup :
    - des caracteristiques du serveur (du netbook au supercalculateur)
    - du schéma de données (requete simple/complexe)
    - du nombre d'accès simultanés (nombre de clients)
    - et bien sur du volume de données dans la base

    Mais ce dernier point n'est pas le plus lourd. Gerer quelques millions de lignes ca ne pose pas de problèmes pour des SGBD dignes de ce nom (comme MySQL ou Postgres).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 11
    Par défaut
    Merci pour vos réponses, je vais peut être revoir tout ca (c'est que ca ne sert a rien de réinventer la roue), meme si je reste sceptique quand aux performances de MySql et de postgres pour des temps de réponses tres tres faibles.

    Merci.

  12. #12
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 766
    Par défaut
    La technique d'indexation la plus rapide repose sur les fonctions de hachage.
    Toutes les recherches sur internet via les moteurs sont basées sur ce principe.
    Après ce n'est qu'une question de nombre de mot clé et de stockage disponible.
    Mais déjà si dans la liste de mot clé il y a les auteurs et les mots des titres, il y a moyen de faire une base d'indexation pas trop grosse via du hachage.

    Bon courage,

Discussions similaires

  1. Meilleur algorithme d'érosion/dilatation
    Par Gwindor dans le forum Traitement d'images
    Réponses: 19
    Dernier message: 17/06/2011, 01h28
  2. Meilleur algorithme de recherche de chaine?
    Par ryosnake dans le forum Algorithmes et structures de données
    Réponses: 23
    Dernier message: 20/09/2006, 20h34
  3. Meilleur algorithme pour trier de très grandes quantités de chaînes de caractères
    Par Cecilka dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 07/05/2006, 11h23
  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. [C / API32 ] Algorithme d'indexation des couleurs
    Par elf dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 03/08/2005, 03h31

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