Suchtechnologien
Internet Search Engines (ich bleibe hier mal bei der englischen Bezeichnung, sonst landen wir bei "Globalnetzsuchapparaten") kommen in zwei Geschmacksrichtungen. Klassische Search Engines bestehen aus mehreren Komponenten. Ein Crawler holt, ähnlich einem normalen Browser, Seiten von Web Servern und legt sie lokal ab. Diese Seiten werden dann nach weiteren Links durchsucht, die der Crawler dann wieder vom Netz holen kann. Währendessen analysiert eine andere Komponente, oft Indexer genannt, die abgelegten Seiten, extrahiert interessante Suchbegriffe und legt sie zusammen mit der URL der Seite in einem Index ab. Das könnte eine Datei, mehrere Dateien im Dateisystem oder eine Datenbank sein. Klassische Search Engines machen dann Sinn, wenn man Websites durchsuchen möchte, die keine oder keine gute eigene Suche bieten, oder wenn eine große und/oder unbekannte Anzahl von Websites durchsucht werden soll, deren Webseiten in der Regel mit Links im HTML Code verknüpft sind. Die Google Suche ist natürlich der bekannteste Vertreter dieser Search Engine Art. Die Technik wird auch eingesetzt, um lokale Systeme zu indizieren und eine Suche für sie zur Verfügung zu stellen, zum Beispiel bei Wikis, Content Management Systemen, grossen Firmenwebsites und so weiter.
Klassische Search Engines arbeiten asynchron, weil sie Ergebnisse auf Suchanfragen aus ihrem Index beantworten, der ja auf der Grundlage von Seiten erstellt wurde, die in dieser Form vielleicht gar nicht mehr online sind. Der Crawler muss desshalb immer wieder losgeschickt werden und neben neuen auch Seiten holen, die er schon einmal geholt hat, um Seitenänderungen mitzubekommen. Der Vorteil auf der anderen Seite ist, dass die Search Engine eine gewisse Unabhängigkeit von der Verfügbarkeit der Quellsysteme hat und, wie im Beispiel von Google, auch komplette Seiten aus ihrem eigenen Cache anzeigen kann, wenn der Originalserver mal nicht verfügbar ist. Anforderungen an die Speicherkapazität, CPU-Leistung und Bandbreite können - je nach Anzahl der Nutzer:innen und der indizierten Webseiten - astronomisch hoch werden (wie man auch an Google sieht).
Eine (immer noch) bestehende Achillesferse dieser Search Engines ist ihre Abhängigkeit von den Links im Quellcode der heruntergeladenen Webseiten. Ohne diese Links werden keine neuen Seiten gefunden und es gibt dann keinen Fortschritt im Umfang der indizierten Seiten. Moderne Webseiten bestehen aber aus immer weniger HTML Code, der Links enthält. Vielmehr lädt der HTML Code nur weitere JavaScript Dateien nach, und erst durch deren Ausführung entstehen die Links, die der normale Benutzer im Browser vor sich sieht. Ein Crawler benutzt aber in der Regel keinen Browser, um die Seiten herunterzuladen, das wäre zu langsam und zu umständlich. Aber es gibt kaum Software, die JavaScript ausserhalb des Browsers so ausführt, dass bei einer dynamischen HTML Seite ein kompletter DOM (eine interne Repräsentation der Seite) erstellt wird, aus dem dann die Links extrahiert werden könnten. Ehrgeizige Junior Entwickler:innen können hier noch zu Ruhm und Ehre gelangen.
Die andere Sorte von Search Engines sind Meta-Search Engines. Sie "crawlen" nicht und bauen daher auch keinen eigenen Suchindex auf. Vielmehr leiten sie Suchanfragen direkt an andere Search Engines weiter, nehmen deren Ergebnisse entgegen und zeigen sie in einer zusammengefassten Form an. Die Meta-Search Engine arbeitet synchron, sie hält keine eigenen Daten, sondern holt sie in dem Moment von den nachgelagerten Quellsystemen ab, in dem eine Anfrage gestellt wird. So können Meta-Search Engines die Ergebnisse mehrerer anderer Search Engines akkumulieren, sortieren und gruppieren. Dabei ist es unerheblich, ob die angefragten Systeme ihrerseits klassische Search Engines sind, die fremde Webseiten untersucht haben, oder Systeme, die ihre eigenen, lokalen Ressourcen per Suchschnittstelle zur Verfügung stellen (zum Beispiel Content Management Systeme).
Meta-Search Engines machen dann Sinn, wenn man eine begrenzte, vorab bekannte Anzahl von Quellsystemen durchsuchen möchte, die ihrerseits Such APIs anbieten. Im Internet ist neben der Akkumulation der verschiedenen Ergebnisse auch der Schutz der Privatsphäre (gegen Search Tracking) ein wichtiges Motiv, Meta-Search Engines zu benutzen.