2011-01-16 5 views
6

Je souhaite créer un système qui stocke des livres (et d'autres documents). Les utilisateurs seront en mesure de se connecter au système où ils peuvent voir une liste de tous les livres ou entrer une chaîne de recherche et obtenir une liste des livres contenant la chaîne de recherche. Mon problème est que je ne sais pas comment je devrais aller stocker mes livres. Les livres obv doivent être consultables et la recherche doit retourner l'ID du livre, le nom et la page préférable. Quelque chose de plus comme le texte entourant le terme de recherche serait un extra gentil.Stocker des livres dans une base de données

Quelques faits qui pourraient vous aider à obtenir la meilleure réponse.

  • La base de données ne doit pas nécessairement être libre. Si SQL Server ou une base de données Oracle m'aidera que je suis tout pour cela.
  • Les livres seront sur les ~ 100 (2-600 pages)
  • Les documents seront environ ~ 1000 (10-50 pages)
  • livres et documents Ajout sera un processus lent qui se produira rarement de sorte que toute Le type de réindexation des tables n'a pas besoin d'être rapide.
  • Je n'ai pas décidé comment rechercher les documents. J'ai besoin que mes résultats de recherche soient classés en fonction de leur pertinence. Cela pourrait devenir la source d'une autre question à l'avenir
+1

Voulez-vous indexer tout le contenu de chaque livre et en faire une recherche? – froeschli

+1

Voulez-vous la copie électronique des livres à stocker dans la base de données ou simplement les méta-données sur les livres? – Nishant

+0

Vous demandez essentiellement comment créer un référentiel de documents très volumineux tout en étant capable de les rechercher. Je ne suis pas sûr qu'une base de données traditionnelle est la voie à suivre. Mais je suis assez sûr que vous voulez probablement utiliser une solution existante plutôt que d'écrire votre propre cadre. Par exemple, vous pouvez utiliser Lucene pour la recherche. – Uri

Répondre

3

N'utilisez pas de base de données RDBMS. Les SGBDR sont bons pour stocker des données relationnelles. Les données que vous essayez de stocker sont un ensemble de documents. Utilisez un magasin de documents comme couchDB ou mongoDB. Cependant, vous devez depuis rechercher ces données, il est préférable d'indexer ces données dans Lucene qui est construit pour ces besoins

+0

Solr serait un bon choix aussi. – andrewWinn

+0

Solr est en fait basé sur Lucene. Il l'expose entre autres comme un service web – piyush

+0

Il est clair que je dois en savoir plus sur ces bases de données.Avant cela, l'hypothèse suivante est-elle correcte? Je peux stocker mes livres simplement comme f.x. pdf (ou a-t-il besoin d'être BLOB?) dans ces DB, crochet Solr ou Lucene en face de lui, avoir ce système indexer mes livres, puis juste chercher dans ce système? Et si tout ce qui précède est vrai, est-ce que la recherche pourrait en quelque sorte me donner la page que la recherche trouve pertinente ou devrais-je stocker mes livres page par page pour que cela fonctionne? – Mannsi

0

Pourvu que vous n'ayez pas l'intention de rechercher le texte entier du livre (peut-être envisager le traitement initial pour stocker Un hachage sérialisé de mots uniques?):

SQL Server 2008R2 a un nouveau système FILESTREAM qui appliquera l'intégrité relationnelle à l'aide du moteur de base de données mais conservera les fichiers dans le système de fichiers. Il est le « meilleur des deux mondes » et vous ne serez pas à vous soucier de la façon dont les plans de sauvegarde DB affecte votre BLOBs

http://msdn.microsoft.com/en-us/library/cc949109(v=sql.100).aspx

+0

Je pensais réellement à la recherche du texte entier du livre si ce n'est pas trop lourd d'un processus – Mannsi

+0

Voulez-vous les rechercher par des expressions exactes? Ou est-ce que la recherche par mot fonctionnera? Je me demande si vous avez besoin de stocker littéralement le texte entier du livre dans un champ consultable ou si vous pouvez simplement utiliser les mots uniques – Matthew

0

SharePoint Foundation 2010 et 2013 pourrait être votre solution parfaite qui est tout à fait libre d'utiliser . Vous pouvez stocker une quantité importante de documents dans différentes bibliothèques de documents, ajouter et modifier leurs métadonnées et les rechercher en utilisant des métadonnées telles que Title, Author, etc. et même le contenu du texte dans le livre.

Questions connexes