2009-07-05 8 views
5

Je dois développer un moteur de recherche vertical dans le cadre du site Web. Les données pour le moteur de recherche proviennent de sites Web de catégorie spécifique. Je suppose que pour cela, j'ai besoin d'un robot qui explore plusieurs (quelques centaines) sites (dans une catégorie d'entreprise spécifique) et extraire le contenu et les URL des produits et services. D'autres types de pages peuvent ne pas être pertinents. La plupart des sites sont petits ou petits (quelques centaines de pages au maximum). Les produits ont de 10 à 30 attributs.Développer un moteur de recherche vertical et un grattoir

Toutes les idées sur la façon d'écrire un tel crawler et un extracteur. J'ai écrit quelques robots d'exploration et extracteurs de contenu en utilisant les bibliothèques ruby ​​habituelles, mais pas un moteur de recherche complet. Je suppose que, de temps en temps, Crawler se réveille et télécharge les pages à partir de sites Web. Le comportement poli habituel comme la vérification des règles d'exclusion des robots sera bien entendu suivi. Alors que l'extracteur de contenu peut mettre à jour la base de données après avoir lu les pages. Comment synchroniser le robot d'exploration et l'extracteur? Dans quelle mesure doivent-ils être intégrés?

+0

Les attributs de tous les sites seront-ils stockés au même endroit? Par exemple, vous avez plus de 30 colonnes sur une table de base de données. – BenMaddox

Répondre

1

Dans le contexte de la recherche d'entreprise que je suis habitué à travailler dans,

  • robots d'exploration,

  • extracteurs de contenu,

  • index des moteurs de recherche (et le chargement de votre contenu dans ces index),

  • étant capable d'interroger ces données effcientement et avec une large gamme de recherche op rateurs,

  • interfaces de programmation à toutes ces couches,

  • éventuellement, des interfaces utilisateur faisant face à l'utilisateur

sont tous les sujets séparés.

(Par exemple, lors de l'extraction des informations utiles à partir d'une page HTML VS fichiers PDF VS MS Word sont conceptuellement similaires, la programmation réelle de ces tâches sont encore très travaux en cours pour une solution générale.)

Vous voudrez peut-être regarder la suite Lucene d'outils open-source, comprendre comment ceux-ci s'emboîtent, et éventuellement décider qu'il serait préférable d'apprendre à utiliser ces outils (ou d'autres, similaires), que de réinventer la très grande , compliquer la roue. Je crois aux livres, donc grâce à votre requête, j'ai découvert ce livre et je viens de le commander. Il semble bon de prendre une solution possible à l'outil de recherche conumdrum.

http://www.amazon.com/Building-Search-Applications-Lucene-LingPipe/product-reviews/0615204252/ref=cm_cr_pr_hist_5?ie=UTF8&showViewpoints=0&filterBy=addFiveStar

Bonne chance et laissez-nous savoir ce que vous découvrez et l'approche que vous décidez de prendre.

3

Nutch s'appuie sur Lucene et implémente déjà un robot d'exploration et plusieurs analyseurs de documents. Vous pouvez également hook it to Hadoop pour l'évolutivité.

Questions connexes