So erstellen Sie eine Suchmaschine

Suchmaschinen gehören zu den Dingen im Leben, die wir als selbstverständlich ansehen. Wann immer wir nach etwas suchen, geben wir ein Wort oder eine Phrase in eine Suchmaschine ein, und wie von Zauberhand liefert sie uns eine Liste mit passenden Ergebnissen. Heutzutage fühlt sich das vielleicht nicht mehr ganz so magisch an, weil wir es jeden Tag tun. Aber jede:r, die:der sich noch an die Zeiten von AltaVista erinnert, sollte wissen, wie gut wir es heute haben.

Wenn das Wort „Suchmaschine“ fällt, denkt man unwillkürlich an bekannte Websuchmaschinen wie Google und – in geringerem Maße – Bing. Doch der Einsatz von Suchmaschinen geht weit über die reine Websuche hinaus. Bekannte Apps wie Uber und Tinder nutzen leistungsstarke Suchmaschinen, um Nutzer:innen auf Basis von Geolokalisierung und anderen plattformspezifischen Merkmalen mit Fahrer:innen oder Dates zusammenzubringen. Das gilt auch für Streaming-Apps, akademische Portale und sogar Intranets. Wenn Sie sich die Navigationsleiste einer größeren Website ansehen, stehen die Chancen ziemlich gut, dass Sie dort ein Suchfeld finden, das Ihnen hilft, die gewünschten Inhalte auf dieser speziellen Seite zu finden.

Die Anzahl potenzieller Anwendungsfälle für Suchmaschinen ist gewaltig, deshalb lesen Sie vermutlich auch diesen Artikel. Vielleicht sind Sie Entwickler:in und wollen Ihre erste Suchmaschine entwickeln. Oder vielleicht ist Ihnen bewusst, dass die Suche Erlebnisse mit generativer KI unter Verwendung von Retrieval-Augmented Generation unterstützt, und Sie möchten mehr darüber erfahren. Damit Sie sich so leicht wie möglich zurechtfinden, haben wir diesen Leitfaden in drei Abschnitte unterteilt:

  • Suchmaschine: Definition und Konzepte

  • Erstellen einer eigenen Suchmaschine

  • Einfaches Entwickeln einer Suchmaschine mit Elastic

Am Ende dieses Artikels wissen Sie, wie Sie eine Suchmaschine mit Webservern, Dateningestion und Indizes mithilfe der der Elasticsearch Platform entwickeln.

Suchmaschine: Definition und Konzepte

Betrachten Sie eine Suchmaschine als Bibliothekar, der Sie bei der Suche nach den gewünschten Informationen unterstützt. Sie erklären ihm das Problem, das Sie zu lösen versuchen, oder die Frage, die Sie beantworten wollen. Der Bibliothekar zeigt Ihnen dann die Bücher und Ressourcen, die Ihnen wahrscheinlich helfen können. Er liegt vielleicht nicht immer richtig, aber diese Herangehensweise ist viel effizienter als wahllos Bücher durchzublättern und auf einen Glückstreffer zu hoffen.

Suchmaschinen bestehen aus vier Hauptkomponenten – Webservern, Dateningestion, einem Index und der Ergebnisseite. Bevor Sie Ihre Suchmaschine entwickeln, müssen Sie die Funktionsweise dieser Komponenten verstehen.

Webserver

Wenn die Suchmaschine der Bibliothekar ist, sind die Webserver die Bibliothek. Hier speichern Sie alle Daten, die Sie benötigen, um seriöse Ergebnisse für den Nutzer auszugeben. Diese Webserver sind häufig cloudbasiert, weil Sie dadurch mehr Skalierbarkeit, Verfügbarkeit, Sicherheit und Leistung erhalten. Für eine Online-Suchmaschine ist dies die Position von HTML-Seiten, Bildern, Videos und anderen Inhalten auf verschiedenen Websites. Für eine Social-Media-Website sind dies die Titel, Beschreibungen, Metadaten und weiteren Informationen, die für den Inhalt auf dieser Plattform erforderlich sind.

Dateningestion

So wie Bibliotheken verschiedene Bücher sammeln und kuratieren müssen, benötigt auch eine Suchmaschine Daten aus verschiedenen Quellen. Daher ist die Dateningestion ein so wichtiger Bestandteil der Suchmaschinenentwicklung. Bei Websuchmaschinen erfolgt diese Dateningestion mithilfe eines Webcrawlers. Dieser Crawler verwendet ausgefeilte Algorithmen, um Websites zu durchsuchen und deren Inhalte sowie deren Speicherort zu ermitteln.

Integrationen mit anderen Diensten über eine API sind eine weitere Art von Dateningestion. Diese Integrationen ermöglichen es Ihnen, auszuwählen, woher Ihre Daten stammen. Dadurch kann Ihre Suchmaschine viel besser bestimmte Daten finden. Wenn Sie beispielsweise eine Suchmaschine für Videos entwickeln, möchten Sie vielleicht Ergebnisse von mehreren Anbietern wie YouTube, Netflix und Disney+ anzeigen.

Ebenso können Sie Connectors verwenden, um Informationen aus einer oder mehreren Datenquellen zu erfassen. Dabei handelt es sich häufig um vorgefertigte Module oder Code-Snippets, über die Sie sich mit bestimmten Datenbanken, Anwendungen oder APIs verbinden können. Dadurch erhalten Sie viel Flexibilität, ohne dass Sie Ihren Umfang zu weit ausdehnen müssen.

Index

Genau wie in einer Bibliothek benötigen Sie einen Index Ihres Inhalts, sonst können Sie unmöglich wissen, wo alles ist. Ein Index organisiert und speichert Informationen aus Ihren Datenquellen, sodass diese Informationen effizienter abgerufen werden können. Damit Ihre Suchmaschine gut funktioniert, muss sie Inhalte schnell identifizieren, einordnen und ausgeben können.

Da Sie vermutlich große Mengen an Daten indizieren wollen, können Sie diesen Index nicht einfach unverändert aus der Quelle kopieren. Stattdessen muss der Index diesen Inhalt verarbeiten und ihn in folgende Schlüsselelemente unterteilen:

  • Schlüsselwörter: Wörter und Ausdrücke, die auf der Seite gefunden wurden

  • Einbettungen: Mehrdimensionale Vektoren, die Textdaten repräsentieren

  • Metadaten: Titel, Beschreibungen und andere strukturierte Daten, die in die Seite eingebettet sind

  • Inhaltsanalyse: Verständnis von Thema, Einheiten und allgemeiner Bedeutung der Seite

  • Backlinks: Links von anderen Websites, die auf diesen Inhalt verweisen

Search Engine Results Pages (SERPs)

Das abschließende Teil dieses Puzzles ist die tatsächliche Anzeige der Suchergebnisse für Nutzer:innen. Die Search Engine Results Page verwertet all die harte Arbeit, die Sie mit Servern, Dateningestion und Index geleistet haben, und erstellt daraus eine Liste nützlicher Ergebnisse, aus denen Nutzer:innen wählen können.

Wie das genau aussieht, variiert von Suchmaschine zu Suchmaschine, aber wahrscheinlich gibt es auf SERPs einen Titel, einen Link, eine Beschreibung und eine Art von Paginierung. Sie können auch erweiterte Filter und Facettensuche einsetzen, damit Nutzer:innen die Ergebnisse leicht mit häufigen Parametern verfeinern können. Aber am wichtigsten ist, dass die Ergebnisse klar angezeigt werden, damit Nutzer:innen leicht den besten, besonders relevanten Treffer finden.

Die Relevanz Ihrer Suchergebnisse ist wichtig, denn sie stärkt das Vertrauen, indem sie Nutzer:innen zeigt, dass Sie deren Intention verstehen. Das gibt ihnen die Sicherheit, am richtigen Ort zu sein, und führt sie nahtlos zu den gesuchten Informationen. Genau dieses Zusammenspiel baut Loyalität auf und sorgt für eine langfristige Bindung

Erstellen einer eigenen Suchmaschine mit Elastic

Nun da Sie ein besseres Verständnis der wichtigsten Komponenten einer Suchmaschine haben, erkunden wir den Prozess der Erstellung einer eigenen Suchmaschine und die Schwierigkeiten, die dabei auftreten könnten. 

Zu Beginn sollten Sie über die Skalierung Ihrer Suchmaschine nachdenken. Es kann verlockend sein, nach den Sternen zu greifen und ein neues Google zu schaffen. Doch das Crawlen von Milliarden von Webseiten erfordert eine riesige Infrastruktur und Rechenleistung – ganz zu schweigen von der Kapazität, alle Daten zu speichern. 

Sie sollten vor der Erstellung auch Ihr vorhandenes Wissen und Ihre vorhandenen Kompetenzen berücksichtigen. Je besser Sie die Datenquelle kennen, desto leichter können Sie die Quelle für Ihre Suchmaschine nutzen. Ebenso sollten Sie nach Möglichkeit bei einem Tech Stack bleiben, den Sie schon kennen. Wenn Sie Erfahrung mit Python haben, sollten Sie damit Ihre Suchmaschine entwickeln.

Schritt 1: Definieren Ihrer Suchanforderungen

Der erste Schritt bei der Entwicklung Ihrer Suchmaschine besteht darin, zu entscheiden, welches Problem Ihre Suchmaschine lösen soll. Diese Entscheidung wird alles Weitere in der Entwicklung beeinflussen, von den Datenquellen über das Indexieren bis hin zur Anzeige der Ergebnisse. Denken Sie also darüber nach, für wen Sie Ihre Suchmaschine entwickeln, und stellen Sie sich folgende Fragen:

  • Warum suchen die Nutzer:innen nach diesen Informationen/Inhalten?

  • Welche Informationen brauchen Sie, um zu entscheiden, ob etwas relevant ist?

  • Wie entscheiden Sie, welche Ergebnisse besser sind als andere?

  • Wie präsentieren Sie die Ergebnisse auf möglichst nützliche Weise?

Nachdem Sie diese Fragen beantwortet haben, können Sie im Verlauf der Erstellung viel besser wichtige Entscheidungen treffen – z. B. welche Datenquellen Sie verwenden oder ob Sie auf Ihren Search Engine Results Pages Bilder einfügen sollen. Je klarer Sie diese Fragen in Ihrem Kopf beantworten können, desto eher erfüllen Sie die Bedürfnisse und Erwartungen der Nutzer:innen.

Schritt 2: Webcrawling zur Datenerfassung

Sobald Sie die Anforderungen an Ihre Suchmaschine kennen, müssen Sie als Nächstes die erforderlichen Daten ingestieren. Wenn Sie Integrationen oder Connectors verwenden wollen, müssen Sie Zugriff auf diese Quellen erhalten und sicherstellen, dass Sie beim Indexieren jederzeit auf die Daten zugreifen können. Wenn Ihnen die Datenquelle gehört, sollte dies kein Problem sein. Aber denken Sie daran, dass externe Datenquellen gewisse Risiken bergen. Der Inhaber der Datenquelle könnte jederzeit den Zugriff wiederrufen oder Änderungen an den Daten vornehmen, wodurch Sie später Probleme haben könnten. Um dem entgegenzuwirken, können Sie regelmäßige Aktualisierungen der Daten vornehmen. Doch Änderungen an der Struktur oder Architektur der Daten können weiterhin Probleme verursachen. 

Wenn Sie eine Websuchmaschine erstellen, müssen Sie einen Web-Crawler verwenden, um die Daten abzurufen, die Sie indexieren möchten. Wie viel Zeit dies in Anspruch nimmt, hängt ganz vom Umfang Ihrer Suchmaschine ab. Theoretisch könnten Sie Ihren eigenen Crawler entwickeln, aber das bedeutet viel Arbeit. Stattdessen ist es wesentlich schneller und einfacher, ein bestehendes Tool wie den Elastic Web Crawler zu nutzen. Dieser scannt die von Ihnen gewünschten Websites, und Sie können automatische Recrawls planen, damit Ihre Suchmaschine immer auf dem neuesten Stand ist.

Schritt 3: Speichern der erfassten Informationen

Ganz gleich, ob Sie einen Crawler, eine API oder einen Connector verwenden – Sie benötigen in jedem Fall einen Ort, um Ihre gesammelten Informationen zu speichern. Dabei sollten Sie jedoch nichts überstürzen und nicht einfach irgendeine beliebige Datenbank wählen. Es gilt, Faktoren wie Datenvolumen und -wachstum, Performance-Anforderungen, Datenstruktur, Skalierbarkeit, Zuverlässigkeit, Sicherheit und Analytik zu berücksichtigen. Zudem müssen Sie die Kosten für die Speicherung dieser Daten sowohl kurz- als auch langfristig einkalkulieren.

Und wie bereits erwähnt, spielen auch Ihre eigenen Kompetenzen eine Rolle. Wenn Sie beispielsweise in Ihrer Entwicklung bisher häufig Elasticsearch verwendet haben, ist das vermutlich auch jetzt die beste Option für Sie. Aber wenn Sie sich mit ein paar anderen Arten von Datenbanken wohlfühlen, sollten Sie Ihre Entscheidung von den oben erwähnten Faktoren abhängig machen.

Schritt 4: Indexieren von Seiten

Als Nächstes müssen Sie die Daten, die Sie erfasst und gespeichert haben, indexieren. Dadurch können Sie Ihren Nutzer:innen besonders relevante Ergebnisse für ihre Abfrage zeigen. Zum Glück ist Indexieren im Elastic Web Crawler inbegriffen, was Ihnen das Leben erleichtert. Aber Sie müssen beim Konfigurieren Ihrer Indexstruktur trotzdem Dinge wie Datengranularität, Indexieren von Attributen und Datenkompression beachten.

Wahrscheinlich werden Sie im Verlauf des Prozesses aus Fehlern lernen, doch verlieren Sie niemals Ihr Ziel aus den Augen. Sie wollen Nutzer:innen dabei helfen:

  • Schnell relevante Informationen zu finden

  • Ihre Suche zu verfeinern und Ergebnisse zu filtern

  • Zugehörige Inhalte zu entdecken

Die Verwendung einer sofort einsatzbereiten Suchoberfläche vereinfacht all dies erheblich, da Sie die UI Ihrer Suchmaschine schnell in Betrieb nehmen können. So können Sie Ihre Suchmaschine testen, die Indexierung kontrollieren und Feinabstimmungen sowie Änderungen vornehmen, um Ihre Suchmaschine zu verbessern. Dies beinhaltet Dinge wie Filtern und Sortieren, die Paginierung und die Suche während der Eingabe.

Schritt 5: Optimieren von Suchergebnissen

Das oberste Ziel beim Aufbau einer Suchmaschine ist es, die nützlichsten und relevantesten Ergebnisse zu liefern. Es ist jedoch unwahrscheinlich, dass Ihnen das auf Anhieb gelingt. Stattdessen müssen Sie kontinuierlich an der Feinabstimmung Ihrer Suchmaschine arbeiten, um diesem Ziel näher zu kommen. Mechanismen wie Keyword-Matching, eine Vektordatenbank, hybride Suchverfahren, Relevanzscoring, Link-Analyse und Synonyme können hierbei erhebliche Verbesserungen bringen.

Sie können auch den Einsatz von Machine Learning und KI erwägen, um Ihre Suchfunktionen zu verbessern. Dadurch können Sie die Leistung Ihrer Suchmaschine steigern, denn sie kann aus Nutzerverhalten lernen, erweiterte Personalisierung anwenden und sogar die Absicht und den Tonfall der Nutzer:innen besser verstehen. Dadurch ergeben sich jedoch wieder ganz eigene Herausforderungen. Sie müssen dafür sorgen, dass Ihre Suchmaschine keine Voreingenommenheit entwickelt, und Sie müssen strenge Maßnahmen für Datenschutz und Sicherheit ergreifen.

Einfaches Entwickeln einer Suchmaschine

Der Aufbau Ihrer ersten Suchmaschine mag wie eine gewaltige Aufgabe erscheinen, aber hoffentlich haben diese Schritte Ihnen gezeigt, dass sie absolut machbar ist. Elastic unterstützt Sie dabei in jeder Phase des Prozesses: Es vereinfacht die Dateningestion mit Tools wie dem Web-Crawler, unterstützt die Indexierung mit seiner skalierbaren und flexiblen Architektur und fördert die Relevanz mit seinen Machine Learning-Funktionen.

Egal, ob Sie eine Website-Suche oder eine spezialisierte Suchmaschine entwickeln: Elasticsearch gibt Ihnen ein umfassendes Set von Tools an die Hand, mit denen Sie von Grund auf ein effizientes und benutzerfreundliches Suchergebnis schaffen.

Nächste Schritte

Sobald Sie bereit sind, helfen wir Ihnen auf die folgenden vier Arten, bessere Sucherlebnisse für Ihr Unternehmen zu erstellen:

  1. Starten Sie eine kostenlose Testversion und erfahren Sie, wie Elastic Ihrem Unternehmen helfen kann.

  2. Lernen Sie unsere Lösungen bei einer Tour kennen, um zu sehen, wie die Elasticsearch-Plattform funktioniert und wie unsere Lösungen Ihre Anforderungen erfüllen.

  3. Lernen Sie in unserem 45-minütigen Webinar, einen eigenen Elasticsearch-Cluster einzurichten, und beginnen Sie mit der Datenerfassung und -ingestion. 

  4. Teilen Sie diesen Artikel mit interessierten Personen per E-Mail, LinkedIn, Twitter oder Facebook.

Die Entscheidung über die Veröffentlichung der in diesem Blogeintrag beschriebenen Leistungsmerkmale und Features sowie deren Zeitpunkt liegt allein bei Elastic. Es ist möglich, dass noch nicht verfügbare Leistungsmerkmale oder Features nicht rechtzeitig oder überhaupt nicht veröffentlicht werden.

In diesem Blogpost haben wir möglicherweise generative KI-Tools von Drittanbietern verwendet oder darauf Bezug genommen, die von ihren jeweiligen Eigentümern betrieben werden. Elastic hat keine Kontrolle über die Drittanbieter-Tools und übernimmt keine Verantwortung oder Haftung für ihre Inhalte, ihren Betrieb oder ihre Anwendung sowie für etwaige Verluste oder Schäden, die sich aus Ihrer Anwendung solcher Tools ergeben. Gehen Sie vorsichtig vor, wenn Sie KI-Tools mit personenbezogenen, sensiblen oder vertraulichen Daten verwenden. Alle von Ihnen eingegebenen Daten können für das Training von KI oder andere Zwecke verwendet werden. Es gibt keine Garantie dafür, dass von Ihnen bereitgestellte Informationen sicher oder vertraulich behandelt werden. Setzen Sie sich vor Gebrauch mit den Datenschutzpraktiken und den Nutzungsbedingungen generativer KI-Tools auseinander. 

Elastic, Elasticsearch, ESRE, Elasticsearch Relevance Engine und zugehörige Marken, Waren- und Dienstleistungszeichen sind Marken oder eingetragene Marken von Elastic N.V. in den USA und anderen Ländern. Alle anderen Unternehmens- und Produktnamen sind Marken, Logos oder eingetragene Marken ihrer jeweiligen Eigentümer.