2009-07-05 11 views
5

Ich muss eine vertikale Suchmaschine als Teil der Website entwickeln. Die Daten für die Suchmaschine stammen von Websites bestimmter Kategorien. Ich denke, dafür brauche ich einen Crawler, der mehrere (einige hundert) Websites (in einer bestimmten Geschäftskategorie) durchsucht und Inhalte und URLs von Produkten und Services extrahiert. Andere Arten von Seiten können irrelevant sein. Die meisten Seiten sind winzig oder klein (höchstens ein paar hundert Seiten). Die Produkte haben 10 bis 30 Attribute.Entwicklung eines Crawlers und Scraper für eine vertikale Suchmaschine

Irgendwelche Ideen, wie man einen solchen Crawler und Extraktor schreibt. Ich habe ein paar Crawler und Content-Extractors mit den üblichen Ruby-Bibliotheken geschrieben, aber keine vollwertige Suchmaschine. Ich denke, Crawler wacht von Zeit zu Zeit auf und lädt die Seiten von Webseiten herunter. Übliches höfliches Verhalten wie das Überprüfen von Robots-Ausschlussregeln wird natürlich befolgt. Der Inhalts-Extraktor kann die Datenbank nach dem Lesen der Seiten aktualisieren. Wie synchronisiere ich Crawler und Extraktor? Wie eng sollen sie integriert werden?

+0

Werden die Attribute von allen Standorten am selben Ort gespeichert? Zum Beispiel haben Sie mehr als 30 Spalten in einer Datenbanktabelle. – BenMaddox

Antwort

1

Im Enterprise-Suchkontext, die ich in zu arbeiten gewohnt bin,

  • Crawlern,

  • Inhalt Extraktoren,

  • Suchmaschinen-Indizes (und das Laden des Inhalts in diese Indizes),

  • in der Lage, diese Daten effizient und mit einer breiten Palette von Suchoptionen abzufragen erators,

  • programmatischen Schnittstellen zu allen diesen Schichten

  • Fakultativ Benutzer gerichtete GUIs

sind alle seperate Themen.

(Zum Beispiel, während nützliche Informationen aus einer HTML-Seite zu extrahieren VS PDF VS MS Word-Dateien vom Konzept her ähnlich sind, sind die eigentliche Programmierung für diese Aufgaben noch sehr viele Arbeiten-in-progress für jede allgemeine Lösung.)

Vielleicht möchten Sie sich die Lucene-Suite von Open-Source-Tools ansehen, verstehen, wie diese zusammenpassen, und möglicherweise entscheiden, dass es besser wäre, diese Tools (oder andere, ähnliche) zu verwenden, als das sehr Große neu zu erfinden , komplizieren Rad.

Ich glaube an Bücher, also habe ich dank Ihrer Anfrage dieses Buch entdeckt und es gerade bestellt. Es sieht nach einer möglichen Lösung für das Suchwerkzeug conumdrum aus.

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

Viel Glück und lassen Sie uns wissen, was Sie herausfinden, und der Ansatz, den Sie sich entscheiden.

3

Nutch baut auf Lucene auf und implementiert bereits einen Crawler und mehrere Dokumentparser. Sie können auch hook it to Hadoop für Skalierbarkeit.