Kurzfassung

Im Juni habe ich meine Notizen semantisch durchsuchbar gemacht und das Thema für erledigt gehalten. Ein Prüfstand mit 30 Fragen zeigte drei Monate später: Bei präzise gestellten Fragen lag die Trefferquote bei 1,00 — bei Fragen aus der Erinnerung nur bei 0,357. Die Lösung war nicht ein besseres Modell, sondern ein zweiter Suchweg daneben.

Was ich im Juni geschrieben habe

Damals ging es um den Sprung von Stichwort zu Bedeutung: Die Volltextsuche des Betriebssystems findet Wörter, nicht Sinn. Wer nach „Paketfilter" sucht, findet kein Dokument, in dem „Firewall" steht. Semantische Suche löst das, indem sie Texte in Zahlenreihen verwandelt, die ihre Bedeutung als Punkt in einem Raum beschreiben. Ähnliche Bedeutung, benachbarte Punkte.

Das funktionierte. Es funktionierte so gut, dass ich die Volltextsuche als überholt abgehakt habe. Das war der Fehler.

Die Frage, die nicht funktionierte

Der Bestand ist seither von rund 1.500 auf 6.810 Dateien gewachsen. Irgendwann stellte ich eine Frage, die ich wirklich beantwortet haben wollte:

„Wo laufen unsere Logs eigentlich alle zusammen?"

Das gesuchte Dokument beschreibt genau das. Es landete auf Rang 60 und schlechter. Stattdessen kamen thematisch benachbarte Dokumente — nichts Falsches, nur eben nicht die Antwort.

Der Grund liegt in der Mechanik: Die Frage enthält kaum Bedeutungsgehalt. „Wo laufen … zusammen?" passt semantisch zu Dutzenden Dokumenten über Zusammenführung, Zentralisierung, Sammlung. Das eine Wort, das den Ausschlag geben müsste, verschwindet im Mittelwert der ganzen Frage.

Eine Volltextsuche hätte dieses Dokument sofort gefunden. Sie sucht nach dem Wortstamm „log", und der steht im Titel.

Beide Verfahren sind gleich gut — und gleich schlecht

Ich habe beide Wege getrennt an denselben Fragen gemessen. Das Ergebnis war verblüffend symmetrisch:

Frage aus der Erinnerung gestelltSemantischVolltext
„Wo laufen unsere Logs eigentlich alle zusammen?"> 60Rang 14
„Was war nochmal mit dem Punkt-Release und den Rettungswegen?"Rang 31Rang 5
„Wie komme ich auf die Maschine drauf?"Top-5> 60

Über den gesamten Fragenkatalog lagen beide bei derselben Trefferquote auf unscharf gestellte Fragen. Aber sie scheiterten nie an denselben Fragen.

  • Semantische Suche verliert, wenn ein einzelnes Stichwort das Entscheidende ist.
  • Volltextsuche verliert, wenn die Frage das Dokument umschreibt, statt es zu zitieren.

Das ist keine Schwäche der einen oder anderen Methode. Es sind zwei verschiedene Werkzeuge, und ich hatte drei Monate lang nur eines benutzt.

Zwei Listen zusammenführen, die nicht vergleichbar sind

Die naheliegende Idee — beide Suchen laufen lassen und die Ergebnisse mischen — scheitert an einem Detail: Die Bewertungen sind nicht vergleichbar. Ein semantischer Abstand von 0,68 und ein Volltext-Score von 12,4 lassen sich nicht addieren. Sie messen verschiedene Dinge auf verschiedenen Skalen.

Das Verfahren, das dieses Problem löst, heißt Reciprocal Rank Fusion und stammt aus einer Arbeit von 2009[1]. Der Trick: Die Bewertungen werden komplett ignoriert. Nur die Platzierung zählt.

Jedes Dokument bekommt aus jeder Liste Punkte nach der Formel 1 / (60 + Rang). Die Punkte werden addiert, danach wird sortiert. Der Wert 60 dämpft: Ohne ihn wäre Platz 1 doppelt so viel wert wie Platz 2. Mit ihm liegen 1/61 und 1/62 fast gleichauf — die Übereinstimmung beider Verfahren zählt damit mehr als eine Spitzenposition in einem.

Ein Dokument, das in beiden Listen im Mittelfeld steht, schlägt so eines, das nur in einer Liste vorne liegt. Genau das will man.

Der Prüfstand — der unspektakulärste Teil

Bevor ich irgendetwas änderte, habe ich einen Fragenkatalog angelegt. Für jede Frage steht fest, welches Dokument sie beantwortet. Entscheidend war eine Trennung, auf die ich erst nach der ersten Messung kam:

KlasseMerkmal
präziseDie Frage benutzt die Begriffe des Dokuments
unscharfDie Frage kommt aus der Erinnerung, mit anderer Wortwahl

Ohne diese Trennung wäre die ganze Messung wertlos gewesen. Bei präzisen Fragen lag die Trefferquote in jeder Variante bei 1,00. Ein Katalog ohne unscharfe Fragen hätte alles gleich gut aussehen lassen.

Die Zahlen

VarianteTrefferquotedavon unscharfFehltrefferZeit
nur semantisch0,7000,35790,23 s
nur Volltext0,7000,250—0,02 s
beide, fusioniert0,8000,57130,25 s

Gemessen an 30 Fragen über rund 73.000 Textabschnitte. Der Zuwachs bei den schwierigen Fragen beträgt 60 Prozent, die Zahl der Fehltreffer fällt von neun auf drei. Der Preis sind zwei Hundertstelsekunden.

Sechs Fragen, die vorher ins Leere liefen, landen jetzt unter den ersten fünf Treffern — darunter solche wie „Warum sind meine Container nach dem Neustart weg?", deren Zieldokument kein einziges Wort der Frage enthält.

Die Lehre, die mich am meisten gekostet hat

Meine erste Messung lief über zehn Fragen, davon vier unscharfe. Dort sprang die Quote von 0,25 auf 0,75 — eine Verdreifachung. Ich hätte das sofort veröffentlicht.

Nach Erweiterung auf 30 Fragen blieben 0,357 auf 0,571 übrig.

Bei vier Fragen bewegt ein einzelner Treffer die Quote um 25 Prozentpunkte. Der Effekt war echt — aber die kleine Stichprobe hat ihn um mehr als das Doppelte überzeichnet. Hätte ich darauf aufgebaut, hätte ich Rauschen für Signal gehalten und an der falschen Stelle weiteroptimiert.

Der Ausbau des Katalogs hat das System nicht besser gemacht. Er hat meine Fähigkeit verbessert, es ehrlich zu beurteilen. Das ist der unterschätzte Teil solcher Projekte.

Drei Fallen, die keinen Fehler werfen

Die gefährlichsten Probleme waren nicht die, die abstürzten.

1. Der Volltext-Index verschwindet beim Neuaufbau

Der Index wird bei jedem Durchlauf neu geschrieben — dabei geht der Volltext-Index verloren. Die Suche wirft deshalb keinen Fehler. Sie fällt still auf den semantischen Weg zurück und wird einfach wieder schlechter. Ohne den Prüfstand hätte ich das erst Wochen später bemerkt, wenn überhaupt.

2. Die Anzeige passte nicht mehr zur Sortierung

Nach der Fusion wird nach Rangpunkten sortiert — angezeigt wurde aber weiter der semantische Abstand als „Relevanz". Der erste Treffer meldete 17 Prozent, der letzte 44. Fachlich korrekt, für den Leser Unsinn. Jetzt steht dort, über welchen Weg ein Treffer gefunden wurde. Das ist die Information, die tatsächlich weiterhilft.

3. Nicht jeder Fehltreffer ist ein Sortierproblem

Steht das richtige Dokument auf Rang 11, hilft besseres Sortieren. Steht es auf Rang 37, war es nie ernsthaft im Rennen — dann hilft nur ein zusätzlicher Suchweg. Diese Unterscheidung habe ich zunächst übersehen und wollte ein Sortierproblem lösen, das keines war.

Und eine Vermutung, die schlicht falsch war

Beim Aufräumen fiel auf, dass 34 Prozent der Dateien Kopien waren — einzelne Dokumente lagen 19-fach identisch im Baum. Meine These: Diese Dubletten belegen die Trefferliste doppelt und verdrängen die guten Ergebnisse.

Nach der Bereinigung schrumpfte der Index um 30 Prozent, die Antwortzeit fiel um 40 Prozent. Die Trefferqualität veränderte sich um keine Stelle hinter dem Komma.

Die Maßnahme war richtig — aus Gründen, die mit meiner Begründung nichts zu tun hatten. Ohne Messung hätte ich mir einen Erfolg zugeschrieben, den es nicht gab.

Was ich mitnehme

  • Zwei Suchwege schlagen einen besseren. Ich habe kein neues Modell eingesetzt, keine größere Hardware, keine externen Dienste. Nur ein zweites, dreißig Jahre altes Verfahren danebengestellt.
  • Der Prüfstand kommt vor der Optimierung. Nicht danach, um den Erfolg zu belegen — vorher, um überhaupt zu wissen, wo man steht.
  • Kleine Stichproben lügen freundlich. Sie zeigen den Effekt, den man sehen will, in der Größe, die man sich wünscht.
  • Stille Verschlechterungen sind das eigentliche Risiko. Ein Absturz zwingt zum Hinsehen. Ein lautlos abgeschalteter Suchweg nicht.

Was noch fehlt, ist eine Oberfläche. Bisher lässt sich das System nur programmatisch ansprechen. Ein Wissenssystem, das man nicht ansehen kann, benutzt man nicht — das ist der nächste Schritt.

Quellenverzeichnis

  1. Gordon V. Cormack, Charles L. A. Clarke, Stefan Büttcher: Reciprocal Rank Fusion outperforms Condorcet and individual Rank Learning Methods. SIGIR 2009, Boston, S. 758–759 (Ursprung des Verfahrens und der Dämpfungskonstante 60). Abgerufen am 13.09.2026.

Alle Messwerte in diesem Artikel stammen aus eigenen Läufen über den beschriebenen Fragenkatalog (30 Fragen, rund 73.000 Textabschnitte, Stand 13.09.2026). Sie gelten für diesen Bestand und diese Fragen — nicht als allgemeingültige Kennzahlen. Wer den Ansatz übernimmt, sollte am eigenen Material neu messen.

Transparenz

Alle beschriebenen Werkzeuge laufen auf eigener Hardware; es bestehen keine geschäftlichen Beziehungen zu den genannten Verfahren oder Modellen, und dieses Projekt ist vollständig selbstfinanziert. Der Artikel wurde mit KI-Unterstützung (Claude) recherchiert und geschrieben; Messwerte und Quellen wurden geprüft, die redaktionelle Verantwortung liegt bei Marco Fuhrmann.