So erstellen Sie eine Suchmaschine
Suchmaschinen gehören im Leben zu den Dingen, die wir als selbstverständlich erachten. Immer, wenn wir nach etwas suchen, geben wir ein Wort oder einen Ausdruck in eine Suchmaschine ein, und wir erhalten auf magische Weise eine Liste passender Ergebnisse. Heutzutage fühlt es sich wahrscheinlich nicht mehr so magisch an, da wir es jeden Tag tun. Aber alle, die sich an die Tage von Alta Vista erinnern, sollten verstehen, wie gut wir es jetzt haben.
Wenn man „Suchmaschine“ hört, denkt man leicht an beliebte Online-Suchmaschinen wie Google und – weniger häufig – Bing. Aber die Anwendung von Suchmaschinen geht weit über die einfache Suche im Internet hinaus. Beliebte Apps wie Uber und Tinder beinhalten leistungsstarke Suchmaschinen, die Nutzer anhand des Standorts und anderer Merkmale, die sie exklusiv von ihrer Plattform erhalten, Fahrern oder Dating-Partnern zuordnen. Dasselbe Prinzip gilt für Streaming-Apps, akademische Websites und sogar Intranets. Wenn Sie die Navigationsseite jeder größeren Website betrachten, finden Sie dort sehr wahrscheinlich eine Suchleiste, mit der Sie die gewünschten Inhalte auf dieser Website finden können.
Die Anzahl potenzieller Anwendungsfälle für Suchmaschinen ist gewaltig, deshalb lesen Sie vermutlich auch diesen Artikel. Vielleicht sind Sie Entwickler 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®
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 Cloud-basiert, 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 kuratieren und sammeln müssen, muss auch eine Suchmaschine die Daten irgendwo erfassen. Deshalb ist Dateningestion so ein wichtiger Teil der Entwicklung einer Suchmaschine. Für Online-Suchmaschinen erfolgt diese Dateningestion über einen Web-Crawler. Der Crawler nutzt ausgefeilte Algorithmen, um Websites zu scannen und zu identifizieren, welche Inhalte wo verfügbar sind.
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 Inhalt 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: Auf der Seite gefundene Wörter und Ausdrücke
Einbettungen: Multidimensionale 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 den Nutzer. 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 der Nutzer wählen kann.
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 der Nutzer die Ergebnisse leicht mit häufigen Parametern verfeinern kann. Aber am wichtigsten ist, dass die Ergebnisse klar angezeigt werden, damit Nutzer leicht den besten, besonders relevanten Treffer finden.
Ihre Suchrelevanz ist wichtig, denn sie schafft Vertrauen, indem sie Nutzern zeigt, dass Sie ihre Absicht verstehen, und ihnen deutlich macht, dass sie auf dem richtig Pfad gelandet sind. Dadurch gelangen sie letztendlich reibungslos zu ihren gewünschten Informationen – eine Kombination, die Treue und eine langfristige Interaktion fördert.
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 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.
Schritt 2: Crawlen im Internet 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 Suchmaschine erstellen, müssen Sie mithilfe eines Web-Crawlers die Daten für Ihren Index erfassen. Wie hoch der Zeitaufwand dafür ist, hängt komplett vom Umfang Ihrer Suchmaschine ab. Theoretisch könnten Sie Ihren eigenen Crawler entwickeln, aber das ist viel Arbeit. Es ist viel einfacher und schneller, wenn Sie ein vorhandenes Tool verwenden, z. B. den Elastic Web-Crawler. Dieses Tool scannt Ihre gewünschten Websites und Sie können automatisches erneutes Crawlen planen, damit Ihre Suchmaschine immer auf dem aktuellsten Stand ist.
Schritt 3: Speichern der erfassten Informationen
Es ist egal, ob Sie einen Crawler, eine API oder einen Connector verwenden – Sie brauchen immer einen Ort, an dem Sie Ihre erfassten Informationen speichern können. Aber Sie sollten dafür nicht einfach irgendeine Datenbank wählen. Sie müssen bestimmte Faktoren berücksichtigen, z. B. Datenvolumen und -wachstum, Leistungsanforderungen, Datenstruktur, Skalierbarkeit, Zuverlässigkeit, Sicherheit und Analytics. Außerdem müssten Sie die Kosten der Datenspeicherung sowohl kurzfristig als auch langfristig berücksichtigen.
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 Nutzern 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 Nutzern dabei helfen:
Schnell relevante Informationen zu finden
Ihre Suche zu verfeinern und Ergebnisse zu filtern
Zugehörige Inhalte zu entdecken
Die Nutzung einer sofort einsatzbereiten Suchmaschinen-Benutzeroberfläche wird das alles viel leichter machen, denn Sie können Ihre Suchmaschinen-Benutzeroberfläche dadurch schneller zum Einsatz bringen. So können Sie Ihre Suchmaschine testen, den Index überprüfen und Änderungen vornehmen, um Ihre Suchmaschine zu verbessern. Dazu gehören Dinge wie Filter und Sortierung, Paginierung und Vorschlagssuche.
Schritt 5: Optimieren von Suchergebnissen
Das oberste Ziel beim Entwickeln einer Suchmaschine besteht darin, besonders nützliche und relevante Ergebnisse auszugeben. Doch es ist unwahrscheinlich, dass Ihnen das sofort gelingt. Vielmehr müssen Sie Ihre Suchmaschine kontinuierlich verbessern, um dem Erreichen dieses Ziels nahezukommen. Strategien wie Schlüsselwortabgleich, eine Vektordatenbank, hybride Suchtechniken, Relevanzscoring, Link-Analyse und Synonyme können zu großen Verbesserungen führen.
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 des Nutzers 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
Das Entwickeln Ihrer ersten Suchmaschine kann wie eine komplizierte Aufgabe erscheinen. Hoffentlich konnten wir Ihnen mit diesen Schritten zeigen, dass es trotzdem leicht möglich ist. Elastic kann Sie bei allen Schritten in diesem Prozess unterstützen. Es vereinfacht die Dateningestion mit Tools wie dem Web-Crawler, ermöglicht Indexieren durch skalierbare und flexible Architektur und fördert 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:
Starten Sie eine kostenlose Testversion, um zu entdecken, wie Elastic Ihr Unternehmen unterstützen kann.
Lernen Sie unsere Lösungen bei einer Tour kennen, entdecken Sie die Elasticsearch-Plattform und deren Vorteile für Ihre Anforderungen.
Lernen Sie in unserem 45-minütigen Webinar, einen eigenen Elasticsearch-Cluster einzurichten und mit der Datenerfassung und -ingestion zu beginnen.
Teilen Sie diesen Artikel mit interessierten Personen per E‑Mail, LinkedIn, Twitter oder Facebook.
Die Entscheidung über die Veröffentlichung von Features oder Leistungsmerkmalen, die in diesem Blogeintrag beschrieben werden, oder über den Zeitpunkt ihrer Veröffentlichung liegt allein bei Elastic. Es ist möglich, dass nicht bereits verfügbare Features oder Leistungsmerkmale nicht rechtzeitig oder überhaupt nicht veröffentlicht werden.
In diesem Blogeintrag 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 persönlichen, sensiblen oder vertraulichen Daten verwenden. Alle Daten, die Sie eingeben, können für das Training von KI oder andere Zwecke verwendet werden. Es gibt keine Garantie dafür, dass Informationen, die Sie bereitstellen, 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 weiteren Marken- oder Warenzeichen sind eingetragene Marken oder eingetragene Warenzeichen der jeweiligen Eigentümer.