Lohnt es sich, den Spotlight-Index neu aufzusetzen – und wenn ja, wie?
Apples systemweite Dateisuche Spotlight feierte in diesem Sommer ihren 20. Geburtstag. Über die Jahre hat sie viele Funktionen dazugewonnen; ihr Kern blieb jedoch die zuverlässige systemweite Suche. Anders als die Finder-Suche, mit der sich Objekte nach Dateiname aufspüren lassen, findet Spotlight auch Dokumente, deren Inhalt einem Suchbegriff entsprechen. Voraussetzung für erfolgreiche Suchen stellt der Spotlight-Index dar, den macOS für jedes angeschlossene Volume anlegt. Howard Oakley, ehemaliger Apple-Programmierer und jetzt akribischer macOS-Analytiker, gibt in einem
Blog-Beitrag zu Spotlight Tipps, wann es vorteilhaft ist, diesen automatisch erzeugten Index zu erneuern – und wann es eher schadet als nützt.
Dafür erklärt er zunächst die Funktionsweise der Routinen, die für das Aktualisieren des Spotlight-Indexes zuständig sind: Legt ein Anwender eine neue Datei an oder ändert eine bestehende, werde dies von der FSEvents-Datenbank aufgezeichnet. Dies löse wiederum einen
XPC-Aufruf aus: Sofern sich die (neue oder geänderte) Datei an einem von Spotlight beobachteten Bereich befindet, kümmere sich ein mdworker-Prozess darum, deren Inhalt dem Spotlight-Index hinzuzufügen. Dafür werde der Unique Type Identifier (UTI) überprüft und der dazugehörige mdimporter ausgewählt. Mit diesem „erkennt“ Spotlight gewissermaßen die Inhalte innerhalb der Datei, die für den Index relevant sind, und schreibt sie in die Datenbank. Dies sei nachvollziehbar in den macOS-Log-Dateien als ein Eintrag des Dienstes mds_stores; auch mdsync und mdwrite gehören zur Spotlight-Indizierung. Aktuelle macOS-Versionen durchsuchen im Nachgang noch eventuell vorhandene Bilder und erkennen darin Text sowie erkennbare Motive; dies übernehme der Dienst photoanalysisd.
Mehrere Ursachen für Spotlight-FehlerProbleme mit dem Spotlight-Index können mehrere Gründe haben. Einige Beispiele: Eine Datei verwendet den falschen Dateityp (UTI), die Datei selbst ist fehlerhaft, oder ein mdimporter für den Dateityp hat einen Bug. In vielen Fällen führt das Neuaufsetzen des Spotlight-Indexes dazu, dass der Fehler reproduziert werde: Solange die fehlerhafte Datei oder der dysfunktionale mdimporter involviert sind, produziere der Indizierungsvorgang zuverlässig denselben Fehler. Ein erneutes Anlegen dauere meist Stunden, vielleicht Tage und helfe in diesen Fällen keinen Schritt weiter.
Fehlersuche mit Konsole und MintsOakley rät, zunächst Ursachenforschung zu betreiben. Sein kostenloses Analyseprogramm
Mints beinhalte einen automatisierten Test für mdimporter. Um eine fehlerhafte Datei aufzuspüren, die mdimporter zum wiederholten Absturz bringe, müssen Anwender die Log-Dateien durchforsten. Das sei aktuell nicht einfach, da Privatsphärenschutz die Anzeige der verantwortlichen Datei unterbinde (Tipps zu deren Umgehung finden sich
hier). Entferne man eine fehlerhafte Datei vom Mac-Volume, sollte mdworker wieder funktionieren.
Oakley's
Mints integriert einen automatisierten Test für fehlerhafte System-mdimporter.
Anleitung zum ReindizierenSollte hinreichend klar sein, dass der Spotlight-Index selbst den Fehler aufweise, empfiehlt Oakley als Vorgehensweise die Spotlight-Kategorie in „Einstellungen“. Über den Button „Privatsphäre der Suchfunktion“ unten rechts kommt man in die Liste auszuschließender Orte. Dieser fügt man über das Plus-Symbol alle Volumes hinzu, deren Index man neu anlegen möchte. Anschließend klicke man auf „Fertig“, warte eine Minute, öffne die Liste erneut und entferne die Volume-Einträge. Wer sich mit der Kommandozeile auskennt, erreiche dasselbe mit dem Befehl „mdutil -E ", gefolgt vom Volume-Pfad. In der Aktivitätsanzeige könne man nachvollziehen, wie lange der Mac mit der Neuanlage beschäftigt sei: Die Dienste mds_stores, mdworker (eventuell in mehrfacher Ausführung) und mds belegen über längere Zeit obere Plätze der „% CPU“-Rangliste.
In der Einstellungen-App unter Spotlight findet sich der Button „Datenschutz der Suchfunktion“. Über ihn fügt man Volumes hinzu, um sie danach wieder zu entfernen, was eine Neuanlage der Suchdatenbank erzwingt.
Vorschnelles Auswerfen eine Ursache?In den
Kommentaren wird eine Vermutung für eine recht häufige Ursache von defekten Spotlight-Indices geäußert: Vorschnelles Abziehen eines externen Laufwerks, ohne dass es ordnungsgemäß über den Finder ausgeworfen wurde. Selbst ein anschließendes regelkonformes Ab- und Wiederanmelden des Laufwerks sorge nicht dafür, dass macOS die korrekte Indizierung wiederaufnehme. Nur eine Reindizierung dieses Laufwerks helfe, um Spotlight davon abzuhalten, Objekte auf diesem Gerät zu „finden“, obwohl sie längst gelöscht seien.