2009-08-11 6 views
3

Je travaille sur un projet impliquant la datamining à partir de divers sites, une bonne analogie est la collecte de données statistiques sur les enchères eBay. Cependant, en plus de stocker les données clés, j'ai vraiment besoin d'assurer l'accès à la page d'origine, et sur certains sites, les pages d'origine peuvent ne pas être permanentes - comme si eBay a supprimé la page d'enchères après l'achèvement. J'aimerais idéalement avoir un système similaire à celui utilisé par Google pour mettre en cache des pages, par exemple stocker une copie de la page sur mon propre serveur. Cependant, j'ai été informé qu'il pourrait y avoir des complications ainsi qu'un grand impact sur les ressources nécessaires pour ma base de données.Le meilleur moyen de mettre en cache des pages dans une base de données?

Répondre

3

Même si chaque page que vous mettez en cache est seulement 5kb, cela ajoute encore au fil du temps - cache 200 pages et vous avez utilisé une addition 1mb dans votre DB; cache 20 000 pages et vous avez utilisé 100mb - et beaucoup de pages (lorsque vous considérez le balisage + contenu) vont être plus grandes que 5kb. Une autre option consisterait à enregistrer les pages sur le disque en tant que fichiers (potentiellement compressés) dans un répertoire, puis de simplement référencer le nom de fichier enregistré dans votre base de données - si vous n'avez pas besoin de rechercher dans le contenu du code de la page via requête après votre datamining initial, cette approche pourrait réduire la taille de votre base de données et les résultats de la requête tout en stockant les pages entières.

0

Je ferais écho à ce que Dav a dit, mais peut-être aussi envisager de stocker seulement les changements si vous indexez la même page encore et encore au fil du temps. Également stocker du texte comme varbinary irait le long chemin à économiser de l'espace. En ce qui concerne la recherche, vous pouvez configurer Lucene dans le parallélisme avec les pages d'index.

0

Est-ce un problème que la page enregistrée n'inclut pas les fichiers JS CSS côté serveur &, ce qui signifie qu'elle sera probablement rendue mal lorsqu'elle est fournie à partir du système de fichiers/base de données de mise en cache?

Qu'en est-il des photos ou des images sur la page?

Je pense que 5 Ko est faible pour une sauvegarde de page, et je me pose la question de l'enregistrement des pages qui contiennent des pages JS ... AJAX en particulier. Je trouve difficile de visualiser exactement ce qui se passerait, mais peut-être vous avez seulement besoin de voir le texte sur la page?

Quelqu'un sait-il comment fonctionne la mise en cache de Google?

Questions connexes