---
title: "Hybride Suche"
description: "Die lexikalische Suche läuft immer; Semantik und Graph-Boost sind optional, die Ergebnisse führt RRF zusammen — ohne sie bleibt es Volltextsuche."
---

# Hybride Suche

Die Suche in Notarium besteht aus unabhängigen Kanälen, die sich gegenseitig ergänzen. Die Volltextsuche (lexikalische Suche) steht immer zur Verfügung und erfordert keine Einrichtung. Die semantische Suche (nach Bedeutung) und die Berücksichtigung von Graph-Verknüpfungen sind optionale Schichten darüber. Die Ergebnisse der Kanäle werden zu einem einzigen Ranking zusammengeführt, und sind die optionalen Schichten nicht verfügbar, arbeitet die Suche weiter über den vollständigen Text — ohne Fehler.

## Drei Kanäle

| Kanal | Was er leistet | Wann er funktioniert |
|---|---|---|
| Lexikalisch (FTS/BM25) | Findet exakte Treffer von Wörtern und Phrasen, rankt nach BM25 | Immer, ohne Einrichtung |
| Semantisch (Vektoren) | Findet Bedeutungsnahes, auch ohne gemeinsame Wörter | Optional (`VECTOR_SEARCH`) |
| Graph-Boost | Zieht Nachbarn eines Treffers über `[[wiki-links]]` heran | Optional (`GRAPH_BOOST`), standardmäßig aus |

Der lexikalische Kanal ist das Fundament: Er funktioniert sofort nach dem Start, ohne dass etwas nachinstalliert werden muss. Der semantische Kanal ergänzt das Verständnis von Bedeutung (Synonyme, Umformulierungen), der Graph-Boost das Wissen über die Verknüpfungen zwischen Notizen.

## Wie die Ergebnisse zusammengeführt werden

Die Kanäle werden durch den **RRF**-Algorithmus kombiniert (Reciprocal Rank Fusion, k=60): Jeder Kanal liefert seine eigene gerankte Liste, und RRF fügt sie zu einem gemeinsamen Ranking zusammen — nach Position statt nach unvergleichbaren „rohen“ Werten. So werden ein lexikalischer Treffer und semantische Nähe gemeinsam gewichtet. Die Zusammenführung erfolgt auf Ebene der Notiz — über ihren stabilen Bezeichner.

```mermaid
flowchart LR
  q([Anfrage]) --> fts[Lexikalisch · FTS/BM25]
  q --> vec[Semantik · Vektoren]
  q --> gr[Graph · 1-hop]
  fts --> rrf{RRF-Fusion}
  vec --> rrf
  gr --> rrf
  rrf --> res([Ergebnisse])
```

## Wenn die Semantik nicht verfügbar ist

Die semantische Schicht kann ausgeschaltet oder nicht verfügbar sein: `VECTOR_SEARCH` ist nicht aktiviert, der Vektor-Stack ist nicht installiert, das Modell wurde nicht geladen, oder die Berechnung des Anfragevektors hat das Zeitlimit überschritten. In jedem dieser Fälle wird die Anfrage vom lexikalischen Kanal bedient — die Suche antwortet immer und wirft keinen Fehler, nur weil die Semantik fehlt.

> [!note] Semantik aktiviert man selbst
> Die Vektorsuche zieht einen schweren nativen Stack nach (~660 MB auf der Festplatte) und lädt das Embedding-Modell in den Speicher (mehrere Hundert MB RAM), daher ist sie im öffentlichen Image standardmäßig ausgeschaltet. Wie man sie einschaltet und welches Modell man wählt, steht unter [Suche einrichten](/docs/self-hosting/search-setup/).

## Wo du suchst

- **Spotlight / OmniSearch** — ein schneller, gerankter Sprung zu einer Notiz. Hier greift die vollständige hybride Suche: Es zählt die Relevanz, nicht nur der exakte Worttreffer. Siehe [Suche und Spotlight](/docs/guides/search-spotlight/).
- **Feed-Filter** (`?q=` im [Feed](/docs/guides/feed/)) — ein lexikalischer Filter über den Korpus: Er behält Notizen, in denen die Begriffe tatsächlich vorkommen, und lässt sich mit Filtern nach Ordnern, Tags und Datum kombinieren.

## Der Index und seine Neuerstellung

Der Suchindex ist abgeleitetes Wissen: Er wird aus Dateien aufgebaut und lässt sich durch einen erneuten Scan vollständig wiederherstellen. Ein Index pro Space. Der Wechsel des Embedding-Modells ist keine Migration, sondern eine Neuerstellung des Vektorteils von Grund auf. Der erstmalige Aufbau des Vektorindex bei einem großen Korpus dauert Minuten, mitunter sogar Stunden; in dieser Zeit zeigt die Oberfläche einen Hinweis „Building search index…“ an, während die Suche selbst im lexikalischen Modus verfügbar bleibt.

Verwandte Themen: [Wissensgraph](/docs/concepts/knowledge-graph/) — woher der dritte Kanal kommt, [Suche einrichten](/docs/self-hosting/search-setup/) — Semantik aktivieren und eine Stufe wählen, [File-first](/docs/concepts/file-first/) — warum der Index wiederherstellbar ist.
