iToverDose/Software· 26 JUNI 2026 · 12:02

Hybridsuche selbst umgesetzt: Warum Vektor- und Keyword-Suche kombiniert mehr liefern

Vektor- und Keyword-Suche ergänzen sich perfekt – doch erst ihre Kombination macht moderne Suchsysteme wirklich leistungsfähig. So baust du selbst eine hybride Suche mit semantischer Präzision und klassischen Schlagworten.

DEV Community4 min0 Kommentare

Die Suche ist der unsichtbare Motor moderner KI-Systeme. Doch während klassische Keyword-Suche präzise Antworten auf exakte Begriffe liefert, scheitert sie an Synonymen oder Umschreibungen. Vektor-Suche dagegen erfasst Bedeutung – doch erst ihre Kombination mit Keyword-Suche erschließt das volle Potenzial. Hier ist der Weg zu einer hybriden Suchlösung, die beide Welten vereint – selbst umgesetzt und ohne teure Hardware.

Warum herkömmliche Suche an ihre Grenzen stößt

Traditionelle Suchalgorithmen arbeiten nach dem Prinzip: Finde Dokumente, die exakt die eingegebenen Wörter enthalten. Doch Sprache ist flexibel. Eine Anfrage nach „Anmeldung“ findet möglicherweise kein Dokument, das stattdessen „Registrierung“ oder „Einschreibung“ verwendet – obwohl die Bedeutung identisch ist. Selbst technische Begriffe wie „Vektorspeicher“ und „PostgreSQL-Erweiterung für Vektoren“ werden von Keyword-Suche oft getrennt, obwohl sie dasselbe Ziel beschreiben.

Genau hier setzt die Vektor-Suche an. Statt nach exakten Wörtern zu suchen, wandelt sie Texte in numerische Vektoren um – mathematische Darstellungen ihrer semantischen Bedeutung. Ähnliche Inhalte erzeugen ähnliche Vektoren, sodass selbst unterschiedliche Formulierungen gefunden werden. Das ist die Grundlage moderner KI-gestützter Suchsysteme und macht sie so mächtig.

Eine hybride Suchmaschine Schritt für Schritt aufgebaut

In Modul 2 des LLM Zoomcamp 2026 von DataTalksClub wurde nicht nur Theorie vermittelt, sondern eine vollständige hybride Suchlösung entwickelt. Hier sind die zentralen Bausteine und Erkenntnisse aus diesem Prozess.

1. Effiziente Text-Embeddings mit ONNX

Vektor-Suche erfordert leistungsstarke Embedding-Modelle – doch der klassische Weg über PyTorch und CUDA ist ressourcenintensiv. Als Alternative kam ein leichtgewichtiges ONNX-Modell zum Einsatz, das dieselbe Funktionalität bei minimalem Speicherbedarf bietet:

from embedder import Embedder

embedder = Embedder()  # Lädt Xenova/all-MiniLM-L6-v2 als ONNX-Modell
v = embedder.encode("Wie funktioniert approximative Nächste-Nachbarn-Suche?")
print(len(v))  # Ausgabe: 384 Dimensionen

Mit nur 67 MB Download und reiner CPU-Unterstützung läuft das Modell auf praktisch jedem Gerät – vom High-End-Server bis zum Laptop. Die erzeugten 384-dimensionalen Vektoren erfassen die semantische Bedeutung des Textes in einer kompakten numerischen Form.

2. Vektor-Suche von Grund auf mit NumPy

Um die Funktionsweise von Vektor-Suchen wirklich zu verstehen, wurde zunächst eine manuelle Implementierung mit NumPy erstellt. Das Kernkonzept: Kosinussimilarität zwischen Vektoren.

import numpy as np

def cosine_similarity(a, b):
    return np.dot(a, b)  # Bei normalisierten Vektoren entspricht der Skalarprodukt der Ähnlichkeit

# Beispiel: Berechne Scores für alle Text-Chunks gegen einen Suchvektor
scores = X.dot(v)  # X enthält alle Chunks als Embeddings
best_idx = np.argmax(scores)  # Index des ähnlichsten Chunks

Diese Grundlagen sind identisch mit den internen Mechanismen von Vektordatenbanken wie Qdrant oder pgvector – nur mit dem Unterschied, dass diese Bibliotheken für große Datenmengen optimierte Algorithmen wie HNSW (Hierarchical Navigable Small World) nutzen. Das manuelle Verständnis hilft, die Stärken und Limitationen von Vektor-Suche besser einzuordnen.

3. Dokument-Chunking für präzisere Ergebnisse

Ein häufiger Fehler bei der Vektor-Suche: Ganze Dokumente werden als ein einziger Embedding verarbeitet. Doch das verwässert die semantische Präzision – relevante Passagen gehen in der Masse unter. Die Lösung: Chunking mit überlappenden Segmenten.

from gitsource import chunk_documents

chunks = chunk_documents(documents, size=2000, step=1000)  # 72 Seiten → 295 überlappende Chunks

Durch die Aufteilung in 2.000 Zeichen lange Segmente mit einer Schrittweite von 1.000 Zeichen (50 % Überlappung) wird sichergestellt, dass Satzgrenzen nicht mitten in wichtigen Informationen enden. Das Ergebnis: Eine deutlich höhere Treffergenauigkeit und eine Reduzierung der LLM-Eingabetokens um das Dreifache.

4. Hybrid-Suche mit Reciprocal Rank Fusion (RRF)

Keine der beiden Suchmethoden ist perfekt. Während Vektor-Suche semantische Zusammenhänge erkennt, verpasst sie exakte Begriffe wie Namen oder technische Codes. Die Keyword-Suche wiederum versagt bei Synonymen oder paraphrasierten Formulierungen. Die Lösung: Hybrid-Suche mit RRF.

def rrf(result_lists, k=60, num_results=5):
    scores = {}
    docs = {}
    
    for results in result_lists:
        for rank, doc in enumerate(results):
            key = (doc["filename"], doc["start"])
            scores[key] = scores.get(key, 0) + 1 / (k + rank)
            docs[key] = doc
    
    ranked = sorted(scores, key=scores.get, reverse=True)
    return [docs[key] for key in ranked[:num_results]]

results = rrf([vector_results, text_results])

RRF kombiniert die Ergebnisse beider Suchmethoden, indem es nur die Rangfolgen berücksichtigt – nicht die absoluten Scores, die unterschiedliche Skalen haben. Ein Dokument, das in beiden Listen gut abschneidet, wird höher bewertet als eines, das nur in einer Liste an erster Stelle steht. Das Ergebnis ist eine robustere und präzisere Suche.

Praktische Erkenntnisse aus dem Vergleich

Ein direkter Vergleich der beiden Suchmethoden zeigt ihre jeweiligen Stärken:

  • Keyword-Suche scheiterte bei der Anfrage „Wie speichere ich Vektoren in PostgreSQL?“ vollständig, weil das Dokument „08-pgvector.md“ den Begriff „pgvector“ nicht enthielt.
  • Vektor-Suche erkannte die semantische Verbindung zwischen „speichern“ und „pgvector“ und platzierte das Dokument an erster Stelle.

Doch während Vektor-Suche semantische Ähnlichkeiten erfasst, bleibt Keyword-Suche unersetzlich für exakte Treffer – etwa bei technischen Spezifikationen oder Eigennamen. Die Kombination beider Ansätze liefert daher in den meisten Anwendungsfällen die besten Ergebnisse.

Fazit: Warum Hybrid-Suche die Zukunft prägt

Die Entwicklung einer hybriden Suchmaschine offenbart eine klare Botschaft: Die Zukunft der Informationssuche liegt in der intelligenten Kombination von Vektor- und Keyword-Suche. Hier die wichtigsten Learnings:

  • Embeddings erfassen Bedeutung, nicht Wörter. Synonyme und Umschreibungen werden automatisch erkannt – ein entscheidender Vorteil gegenüber klassischen Suchalgorithmen.
  • Chunking ist unverzichtbar. Ohne Aufteilung in sinnvolle Segmente leidet die Präzision der Suche.
  • ONNX macht Vektor-Suche überall einsetzbar. Keine GPU, kein CUDA – nur 67 MB und eine CPU reichen aus.
  • Hybrid-Suche (RRF) ist der Goldstandard. Sie übertrifft sowohl reine Vektor- als auch Keyword-Suche und ist in den meisten Szenarien die optimale Wahl.

Die vollständige Implementierung dieser Lösung – inklusive aller Code-Beispiele und Notebooks – ist im GitHub-Repository des Autors verfügbar. Wer selbst in die Welt der semantischen Suche eintauchen möchte, findet im LLM Zoomcamp 2026 einen kostenlosen und praxisnahen Einstieg.

Die Suche der Zukunft wird nicht zwischen Vektoren und Keywords wählen müssen – sie wird beide perfekt vereinen.

KI-Zusammenfassung

Learn to build a hybrid search engine combining keyword and vector search for smarter AI retrieval. Includes code, chunking tips, and hybrid RRF logic.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #271UFE

0 / 1200 ZEICHEN

Menschen-Check

9 + 6 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.