Stephan Huber: Themensuchmaschine: Anforderungen an Server/Skripte/Programme?

Beitrag lesen

Hallo Julian,

In den letzten Wochen kam mir mehr und mehr der Gedanke eine kleine Suchmaschine für ein bestimmtes Themengebiet aufzubauen. Nur habe ich absolut keine Ahnung wie man da anfängt.

Wie legst Du fest, was zum Themengebiet gehört? Ich nehme mal an, Du willst zuerst einmal einen Katalog machen, in dem themenspezifische Webseiten stehen, und von da ausgehend spidern. Wann hörst Du auf? Am sichersten ist es, wenn Du einfach nur von den redaktionell gesichteten Seiten "nach unten" gehst, also Links ignorierst, die ein Verzeichnis höher führen, oder in eine andere Domain. Das Konzept ist dann eher sowas wie eine Volltextsuche über alle aufgelisteten Sites eines redaktionell erstellten Katalogs. Oder hast Du etwas anderes vor?

  • Welche Voraussetzungen an Hardware müssten für sowas gegeben sein?

Kommt wie immer auch auf die Besucherzahlen an, aber in diesem Fall wahrscheinlich eher auf die Aktualität des Indexes, da die Besucher den Server, wenn es nicht wirklich sehr viele sind, lange nicht so beanspruchen, wie der spider, der ja unabhängig von den Besucherzahlen laufen muß. Wenn Du von jeder der 1500 Sites 20 Seiten indizierst, muß der Server bei monatlicher Aktualisierung des Index 0,7 Seiten in der Minute schaffen, das sollte mit einem normalen Dedicated (was man halt jetzt so für 50-100 Euro bekommt) gar kein Problem sein, vor allem da nach der ersten Erstellung des Index ja nur noch neuindiziert wird, wenn sich eine Seite geändert hat, bei vielen Seiten wirst Du also bei darauffolgenden Durchläufen des Robots nur noch HTTP-Header abfragen, nicht die ganzen Seiten. Plattenplatz sollte auch kein Problem sein, htdig z.B. gibt als Orientierungswert für die Größe des Index 12K mal die Anzahl der Dokumente an, das wären dann bei der Annahme ca. 350MB.

  • Welche Software (z.B. Datenbank) wäre vermutlich unabdingbar?

Du brauchst eine Datenbank (PostgreSQL, MySQL, usw. )für den Katalog, und dann eine Suchmaschine, falls Du die nicht selber programmieren willst, wovon ich stark abraten würde. Man hat zwar schnell irgendein Skript, daß Seiten aufruft und nach Links durchsucht, aber das so zu machen, daß es z.B. auch robots.txt versteht, und die ganzen HTTP-Antworten (Redirects, usw.), wäre doch sehr aufwendig, und es gibt genügend gute open source Software, damit man das Rad nicht neu erfinden muß.

  • Wie würde sowas von der Programmierung her in etwa aussehen (Aufbau/Ablauf)?

Im wesentlichen würde die Arbeit darin bestehen, sich eine Katalogsoftware zu basteln oder ein bestehendes Skript anzupassen (gibts ja auch wie Sand am Meer z.B. in PHP). Dann brauchst Du nur noch eine Suchmaschine, der Du die Ausgangslinks übergeben kannst. Ich habe bis jetzt nur mnogosearch benutzt, und htdig mal näher angeschaut, aber denen kann man zumindest in der Konfigurationsdatei die Server/urls geben, von denen sie ausgehen sollen, und auch sagen, ob sie z.B. jeweils innerhalb der angegebenen Domain bleiben sollen, wie weit sie spidern sollen, usw. Du brauchst also dann nur noch ein Programm, daß alle URLs aus dem Katalog holt, und sie in der Konfigurationsdatei des Spiders regelmäßig aktualisiert, oder den Spider mit den neu zu indizierenden urls als parameter aufruft (bei htdig z.B. sollte das gehen)
Und eine Möglichkeit, den Spider regelmäßig so laufen zu lassen, daß er dabei nicht die ganzen Ressourcen des Servers verbrät. Wie man das geanu macht, hängt von der Suchmaschinensoftware ab, unter Unix kannst Du das z.B. entweder mit "nice" kontrollieren, oder immer eine begrenzte Indizierung einiger Seiten per cron starten, usw.

  • Welche Sprache sollte überhaupt verwendet werden um das alles halbwegs vernünftig (und zukunftsorientiert) aufzubauen?

Englisch, Spanisch und Chinesisch ;-)

Viele Grüße
Stephan