2009-07-07 7 views
0

Peut-être que je suis en train de brumiser les problèmes et de confondre la réponse avec les questions, mais s'il vous plaît, sautez moi. Je voudrais penser (communément, avec vous) à propos d'un site qui est basé sur n'importe quel framework MVC (quelque chose PHP ou ASP.NET MVC, quand même) qui utiliserait un moteur de recherche (lucene/solr, FAST ESP,) comme l'extrémité arrière du modèle. C'est-à-dire qu'il n'y a pas de base de données en soi dans le projet. Juste un index géant de documents qui sont un contenu semi-structuré. Je cherche à comprendre - et gardez à l'esprit le site est principalement en lecture seule - où je risque de rencontrer des problèmes. Quelles sont les choses qui vous font penser que c'est une mauvaise idée dès le départ. De plus, veuillez supposer qu'il y aura une infrastructure robuste avec la mise en cache entourant le moteur de recherche - ainsi, bien que les commentaires de perf soient les bienvenus, nous pensons qu'ils ne sont pas le problème majeur.MVC Implémentation où un moteur de recherche est le modèle

Merci!

Répondre

0

En général, j'utiliserais un outil comme Lucene pour chercher du contenu, et une base de données pour le récupérer. Cela ne veut pas dire que ça ne marchera pas. C'est plus une question de pourquoi vous ne voulez pas utiliser une base de données. Oui, cela peut fonctionner, et cela fonctionnera probablement (selon les exigences fonctionnelles du site, lisez la suite), mais cela ne fait pas un outil comme Lucene l'outil juste pour le travail en soi. Cela dit, cela dépend du type de site. Est-ce vraiment un site avec juste un tas de données interrogeables et rien d'autre, ou est-ce quelque chose de beaucoup plus que cela? Si la réponse est la première, alors bon! Si c'est le dernier, je peux penser à quelques problèmes:

  • Les mises à jour des données peuvent être problématiques. Les "mises à jour instantanées" sont généralement interdites, car Lucene devrait reconstruire son index, ce qui prend du temps. S'il n'y a pas beaucoup de mises à jour des données, ça va. Vous pouvez simplement recréer l'index plusieurs fois par jour, ou tous les soirs, si cela fonctionne.
  • Essayer de bourrer des données dans un index qui n'est pas vraiment adapté pour être indexé n'est généralement pas une bonne idée. Si le site permet aux utilisateurs de s'inscrire sur votre site, alors ces données utilisateur devraient vraiment aller dans une base de données. Il n'est pas impossible de le stocker dans un index lucene, ce n'est juste pas le bon outil pour le travail. Utilisez l'index comme un ensemble de documents indexés, mais ne l'utilisez pas comme base de données.
+0

Merci Razzie - le site est en effet tout sur la récupération de données - comme d'un catalogue qui change rarement. Cependant, la structure de chaque élément de données pourrait être différente - pas comme s'il n'y avait qu'une poignée de modèles - plus comme des fragments de XHTML ou de XML arbitrairement balisés - en fait, je regardais aussi quelque chose comme CouchDB. Merci –

Questions connexes