Skip to content

Suchmaschinen-Prinzipien

Vorwort

Du suchst auf Taobao nach "rotes Kleid" und findest in 0,1 Sekunden aus Milliarden von Produkten die relevantesten Ergebnisse — wie funktioniert das? Suchmaschinen sind eine der wichtigsten Infrastrukturen des Internets. Von Google bis zur internen Suche von E-Commerce-Plattformen — das Kernprinzip ist immer dasselbe: Invertierter Index + Relevanz-Ranking.

Was wirst du in diesem Artikel lernen?

Nach Abschluss dieses Kapitels wirst du Folgendes erhalten:

  • Invertierter Index: Die wichtigste Datenstruktur von Suchmaschinen verstehen
  • Segmentierungstechnologie: Die Herausforderungen und gängigen Lösungen der chinesischen Wortsegmentierung kennenlernen
  • Relevanz-Ranking: Die Grundprinzipien von TF-IDF und BM25 beherrschen
  • Elasticsearch: Architektur und Anwendungsszenarien der beliebtesten Suchmaschine verstehen
  • Suchoptimierung: Synonyme, Rechtschreibkorrektur, Autovervollständigung und andere nützliche Suchfunktionen beherrschen
KapitelInhaltKernkonzept
Kapitel 1Invertierter IndexVorwärts-Index vs. invertierter Index
Kapitel 2Segmentierung und AnalyseChinesische Segmentierung, Stoppwörter, Wortstammreduktion
Kapitel 3Relevanz-RankingTF-IDF, BM25
Kapitel 4ElasticsearchVerteilte Architektur, Shards, Replikas
Kapitel 5SuchoptimierungSynonyme, Korrektur, Autovervollständigung

0. Übersicht: Was ist die Essenz der Suche?

Die Essenz der Suche ist ein Information Retrieval-Problem: Zu einer gegebenen Anfrage die relevantesten Ergebnisse aus einer riesigen Dokumentmenge finden und nach Relevanz sortiert zurückgeben.

Dieser Prozess ist in zwei Phasen unterteilt:

  • Indexierungsphase (Offline): Alle Dokumente im Voraus verarbeiten und eine effiziente Suchstruktur aufbauen
  • Abfragephase (Online): Wenn der Benutzer Suchbegriffe eingibt, schnell passende Dokumente finden und sortieren

Warum kann man nicht einfach eine Datenbank-LIKE-Abfrage verwenden?

SELECT * FROM products WHERE name LIKE '%rotes Kleid%' scheint zu funktionieren, erfordert aber einen Full Table Scan — jede Zeile wird einzeln geprüft. Bei Datenmengen im Millionenbereich wird diese Abfrage unbrauchbar langsam. Der invertierte Index verwandelt diese O(n)-Operation in eine O(1)-Suche.


1. Invertierter Index: Das "Herz" der Suchmaschine

Herkömmliche Datenbanken verwenden einen Vorwärts-Index: Von der Dokument-ID zum Dokumentinhalt. Suchmaschinen verwenden einen invertierten Index: Vom Schlüsselwort zur Liste der Dokumente, die es enthalten.

Inverted Index
Type a search term to see how an inverted index works
Source documents
Doc 1Apple is a common fruit
Doc 2Apple released a new phone
Doc 3I like eating fruit and vegetables
Doc 4This phone has a practical price
Doc 5The fruit shop has apples and bananas
Inverted index table
apple[1][2][5]
fruit[1][3][5]
phone[2][4]
company[2]
release[2]
like[3]
vegetables[3]
price[4]
practical[4]
banana[5]
common[1]
IndextypRichtungSuchmethodeAnwendungsszenario
Vorwärts-IndexDokument → InhaltID bekannt, Inhalt suchenDatenbank-Primärschlüsselabfrage
Invertierter IndexSchlüsselwort → DokumentlisteSchlüsselwort bekannt, Dokumente suchenVolltextsuche

Der Aufbau eines invertierten Index

  1. Dokumente sammeln: Alle durchsuchbaren Dokumente erfassen
  2. Segmentierung (Tokenization): Jedes Dokument in einzelne Wörter (Tokens) zerlegen
  3. Mapping erstellen: Erfassen, in welchen Dokumenten jedes Wort vorkommt (sowie Position, Häufigkeit usw.)
  4. Persistent speichern: Den Index auf die Festplatte schreiben für schnelle Suchen

2. Segmentierung und Textanalyse

Die Segmentierung (Worttrennung) ist der erste Schritt in einer Suchmaschine und die größte Herausforderung bei der chinesischen Suche. Englisch ist von Natur aus durch Leerzeichen getrennt, aber Chinesisch hat keine Trennzeichen — "乒乓球拍卖了" kann als "乒乓球/拍卖/了" oder als "乒乓/球拍/卖/了" segmentiert werden.

SegmentierungsmethodeBeschreibungBeispiel
Standard-SegmentierungTrennung nach Leerzeichen und Satzzeichen (Englisch)"hello world" → ["hello", "world"]
Chinesische SegmentierungBasierend auf Wörterbuch oder Modell"搜索引擎" → ["搜索", "引擎"]
N-gramTrennung nach festem gleitendem Fenster"搜索" → ["搜索", "索引"]
Benutzerdefiniertes WörterbuchBranchenspezifische Fachbegriffe hinzufügen"iPhone16ProMax" als ein Wort

Textanalyse-Pipeline

Segmentierung ist nur ein Schritt der Textanalyse. Die vollständige Pipeline umfasst:

  1. Zeichenfilterung: HTML-Tags, Sonderzeichen entfernen
  2. Segmentierung: Text in Wörter (Tokens) zerlegen
  3. Stoppwort-Filterung: Bedeutungslose高频-Wörter wie "的", "了", "是" entfernen
  4. Synonymerweiterung: "手机" zu "手机、电话、移动电话" erweitern
  5. Wortstammreduktion (Stemming): "running" zu "run" reduzieren (Englisch)

3. Relevanz-Ranking: Welches Ergebnis ist am "relevantesten"?

Die passenden Dokumente zu finden ist nur der erste Schritt. Noch wichtiger ist die Sortierung — die relevantesten Ergebnisse oben.

AlgorithmusPrinzipMerkmale
TF-IDFTerm Frequency (TF) × Inverse Document Frequency (IDF)Klassischer Algorithmus, einfach und effektiv
BM25Verbesserte Version von TF-IDF mit Dokumentlängen-NormalisierungStandard-Algorithmus in Elasticsearch
VektorabfrageDokumente und Anfragen in Vektoren umwandeln, Kosinusähnlichkeit berechnenUnterstützt semantische Suche

TF-IDF intuitiv erklärt

  • TF (Term Frequency): Je häufiger ein Wort in einem Dokument vorkommt, desto wahrscheinlicher ist das Dokument mit diesem Wort relevant
  • IDF (Inverse Document Frequency): Je weniger Dokumente ein Wort enthalten, desto höher seine Unterscheidungskraft
  • "的" kommt in allen Dokumenten vor (niedrige IDF), daher ist die Suche nach "的" sinnlos
  • "Elasticsearch" kommt nur in wenigen Dokumenten vor (hohe IDF), die Suche danach ist präzise

4. Elasticsearch: Die beliebteste Suchmaschine

Elasticsearch ist derzeit die beliebteste Open-Source-Suchmaschine, basierend auf Apache Lucene, und bietet verteilte Volltextsuche mit RESTful API.

KonzeptBeschreibung
IndexÄhnlich wie eine Datenbank-"Tabelle", speichert gleichartige Dokumente
DocumentEin Datensatz im JSON-Format
ShardEin Shard, der den Index auf mehrere Knoten aufteilt
ReplicaReplika, bietet Hochverfügbarkeit und Lese-Skalierung
MappingFeld-Typdefinition, ähnlich wie ein Datenbank-Schema
AnalyzerTextanalysegerät, definiert Segmentierungsregeln

ES vs. Datenbank

Elasticsearch dient nicht als Ersatz für eine Datenbank, sondern als Suchschicht, die mit der Datenbank zusammenarbeitet. Typische Architektur: Daten werden in die Datenbank geschrieben → zu ES synchronisiert → Suchanfragen gehen an ES → Detailanfragen gehen an die Datenbank.


5. Suchoptimierung: Die Suche "intelligenter" machen

OptimierungsmethodeBeschreibungWirkung
Synonyme"手机" findet auch "电话"Höherer Recall
Rechtschreibkorrektur"iphoen" wird automatisch zu "iphone" korrigiertFehlertoleranz
AutovervollständigungEingabe von "苹" schlägt "苹果手机" vorBessere Nutzererfahrung
Hervorhebung (Highlighting)Übereinstimmende Wörter in den Ergebnissen farblich markierenÜbersichtliche Darstellung
GewichtsanpassungTitel-Übereinstimmung höher gewichten als Inhalts-ÜbereinstimmungHöhere Präzision
Filter und AggregationNach Preisbereich, Marke filternErgebnisse eingrenzen

Zusammenfassung

Suchmaschinen sind eine Kerninfrastruktur von Internetanwendungen. Wer den invertierten Index, die Segmentierung und das Relevanz-Ranking verstanden hat, hat die Essenz von Suchmaschinen begriffen.

Wichtige Erkenntnisse dieses Kapitels:

  1. Invertierter Index: Die Rückwärtsabbildung von Schlüsselwort zu Dokument ist die Kern-Datenstruktur von Suchmaschinen
  2. Segmentierung als Fundament: Die chinesische Segmentierung ist der Schlüssel zur Suchqualität und erfordert die Wahl des richtigen Segmentierers
  3. BM25-Ranking: Auf Wortfrequenz und Dokumentfrequenz basierende Relevanzbewertung, der Standard-Algorithmus in ES
  4. ES-Architektur: Shards + Replikas für Verteilung und Hochverfügbarkeit
  5. Suchoptimierung: Synonyme, Korrektur, Autovervollständigung machen die Suche intelligenter

Weiterführende Literatur