Die Suche im Verlauf schaut jetzt in Ihre Dokumente
Die Suche im Verlauf traf früher nur Dateinamen. Angemeldet findet sie ein Dokument jetzt auch an dem, was darin geschrieben steht — das Namensfeld arbeitet genau wie vorher, es ist nur nicht mehr der einzige Weg hinein.
Niemand erinnert sich daran, wie er eine Datei genannt hat. Man erinnert sich an einen Satz, der darin stand, an den Namen der Kundin, um die es ging, oder an den einen Befehl, den das Runbook enthielt. Das Feld über Ihrem Verlauf konnte dabei bisher nicht helfen, denn es verglich das Getippte immer nur mit Dateinamen.
Zwei Suchen, ein Feld
Wer hineintippt, löst jetzt beides gleichzeitig aus. Der Namensfilter läuft dort, wo er immer lief — im Browser, über jede Zeile der Seite, sofort, für gespeicherte und ungespeicherte Konvertierungen gleichermaßen. Und einen Augenblick später antwortet der Server, sofern Sie angemeldet sind, mit den gespeicherten Dokumenten, deren Text passt, nach Güte des Treffers sortiert; diese Zeilen kommen zu denen hinzu, die der Name schon gefunden hat.
Sie müssen sich nicht entscheiden. Eine Anfrage, die halb Dateiname und halb erinnerte Wortfolge ist, findet beides, und eine, die inhaltlich nichts trifft, lässt den Namensfilter, wie er war. Die Anfrage ist entprellt, ein Tastendruck ist also keine Anfrage, und eine fehlgeschlagene Suche lässt die Liste arbeiten, statt sie durch einen Fehler zu ersetzen.
Woher der Index kommt
Jedes gespeicherte Dokument trägt einen tsvector seines Markdown, geschrieben im Moment des Speicherns und in Postgres indexiert. Verglichen wird mit websearch_to_tsquery, die Syntax ist also die, die jedes Suchfeld den Leuten beigebracht hat: "eine Wortfolge in Anführungszeichen" für Wörter in dieser Reihenfolge, or zwischen Alternativen, ein vorangestelltes - zum Ausschließen.
Die Konfiguration ist absichtlich schlicht — keine Wortstammbildung, keine Liste von Füllwörtern. Wörter treffen so, wie sie getippt wurden: konvert findet also kein konvertieren, und umgekehrt wird nichts, was Sie suchen, still umgedeutet. Dass die Markdown-Quelle durchsucht wird und nicht die gesetzte Seite, hat eine Nebenwirkung, die man kennen sollte: Die Adresse eines Links, ein Codeblock und eine Überschrift sind ebenfalls durchsuchbarer Text.
Was sie nicht erreicht
Eine Konvertierung, die nur in diesem Browser liegt, hat keine Zeile in der Datenbank, also ist für sie nichts indexiert, und sie trifft weiter allein über den Namen — die ehrliche Folge davon, dass Konvertierungen lokal bleiben, bis Sie speichern. Dokumente, die jemand mit Ihnen geteilt hat, sind ebenfalls nicht erfasst; der Chip, der sie auflistet, filtert nach Namen.
Aus einem Skript ist dasselbe ein Parameter: GET /api/v1/documents?q=… oder tp list --q "…", und zurück kommen die Treffer, die besten zuerst, bei gleicher Güte der neuere vor dem älteren.
Weiter: viele Markdown-Dateien auf einmal konvertieren und Dokumentation, die im Repository lebt.