Baloo

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Ein Terminal öffnen

Inhaltsverzeichnis
  1. Installation
  2. Vorgehensweise
  3. Benutzung
    1. balooshow
    2. baloosearch
      1. Anwendungsbeispiele
  4. Einstellungen
    1. per GUI
  5. balooctl
    1. balooctl config
    2. Datenbanken löschen
      1. selektiv
      2. vernichtend
      3. manuell
  6. Problembehebung
    1. baloo_file benötigt 100% CPU
    2. baloo hängt bei einer Datei
  7. Links
    1. intern
    2. extern

Baloo 🇬🇧 ist ein Hintergrunddienst, welcher unter dem KDE Plasma Desktop zur Dateiindizierung und -suche verwendet wird.

Die drei Kern-Plugins sind der Datenspeicher (Data Stores), Suchspeicher (Search Stores) und die Beziehungen (Relations). Diese Unterteilung erlaubt Stichwörter, Suchbegriffe und Zusammenhänge unabhängig von den Original-Daten zu speichern und somit permanent im Datenspeicher zur Verfügung zu stellen.

Die "TagRelations" verbinden dabei Daten aus verschiedenen Quellen. So wird es beispielsweise möglich, von Akonadi bereitgestellte - und auch weiterhin verwaltete - PIM-Daten mit lokalen Dateien aus dem Dateisystem zu verknüpfen.

Gespeichert werden die Informationen in einer Kombination zwischen Xapian und SQLite. Xapian ist eine Suchmaschinenbibliothek, welche unter der GPL v2+ veröffentlich wurde.

Installation

Unter dem KDE Plasma Desktop ist Baloo bereits vorinstalliert und aktiviert. Das Metapaket baloo wurde in neueren Versionen (ab Xenial) ersatzlos gestrichen, eine Nachinstallation ist über das Paket baloo-kf5 möglich.

Befehl zum Installieren der Pakete:

sudo apt-get install baloo-kf5 

Oder mit apturl installieren, Link: apt://baloo-kf5

Vorgehensweise

Baloo macht sich selbst zur Aufgabe mit möglichst wenig Speicherbedarf eine extrem schnelle Suche zu gewährleisten. Ebenfalls werden zusätzliche Metadaten durch die Erweiterung von Dateiattributen ermöglicht. So können beliebige Dateien mit weiteren Schlagworten und auch Kommentaren versehen werden.

Baloo baut dabei einerseits auf einen Datenspeicher, so wie auf einen Suchspeicher auf. Der Datenspeicher kann ein freies Format und eine freie Schnittstelle (API) haben, so dass für die entsprechenden zu speichernden Daten die jeweils beste Speicherform gewählt werden kann.

Der Suchspeicher wird mittels Plugins realisiert, dessen Sucheigenschaften speziell auf festgelegte Datentypen ausgerichtet sind. Standardmäßig bringt Baloo drei Plugins für folgende Typen mit:

Auch hier kann jedes Plugin seine eigene Schnittstelle mitbringen.

Benutzung

Baloo wird hauptsächlich von anderen Programmen zur Präsentation von Suchergebnissen verwendet. Beispielhaft wären der KRunner und Dolphin zu nennen. Ebenso gibt es Milou, welches als Plasmoid-Suchschnittstelle einsetzbar ist. Um auf der Kommandozeile zu suchen oder Informationen anzuzeigen liefert Baloo die Programme balooshow und baloosearch mit.

balooshow

Balooshow zeigt Informationen über die ausgewählte Datei. Allgemeine Syntax:

balooshow [OPTIONEN] Datei 

Beispiele:

balooshow Bilder/Beispielbild.png 

Keine Indexinformationen gefunden

bedeutet, diese Bild wurde noch nicht indiziert.

balooshow Bilder/Beispielbild.png 

36048747142053933 45 8393253 /home/user/Bilder/Beispielbild.png
        Breite: 1920
        Höhe: 1080

Ausgabe nach der Indizierung, welche durch balooctl index Bilder/Beispielbild.png gestartet wurde.

baloosearch

Baloosearch ist das Kommandozeilen-Tool für die Suche. Alle indizierten Dateien lassen sich damit per Stichwortsuche finden.

Die allgemeine Syntax lautet:

baloosearch [OPTIONEN] ABFRAGE 

Anwendungsbeispiele

Hier dient als Beispiel die tag-Suche. Verwendet man, z.B. unter Dolphin, die Funktion "Stichwörter hinzufügen", landen diese in der Datei-Datenbank. Um gezielt nach diesen zu suchen bietet sich der Parameter //?query=EIGENSCHAFT: an. Mit diesem lassen sich gezielt Stichworte, Dateinamen, Künstler, etc. suchen und die damit gekennzeichneten Dateien ausgeben.

baloosearch //?query=EIGENSCHAFT:SUCHBEGRIFF 

Der Suchbegriff ist "case-insensitiv" (heißt, Groß-/Kleinschreibung wird ignoriert), kann dabei mit dem Asterisk(*) vervollständigt, aber nicht als genereller Joker verwendet werden. Es muss mindestens der Anfangsbuchstabe vorgegeben werden und nach dem Asterisk darf kein Zeichen mehr folgen. Die Verknüpfung von mehreren Suchbegriffen wird mittels OR oder AND realisiert.

Einige Beispiele:

#Suche nach Stichwort
baloosearch //?query=tag:Urlaubsbild

#Suche nach Stichwort und Breite
baloosearch //?query=tag:Urlaubsbild AND width:100

#Suche nach mehreren Stichworten
baloosearch //?query=tag:Urlaubsbild AND tag:Familie

#Suche nach Künstler UND Stichwort laut
baloosearch //?query=artist:Iron* AND tag:laut

#Suche nach allen Künstlern, die mit A beginnen und
baloosearch //?query=artist:A* AND title:B*

#Suche nach Künstler und Genre
baloosearch //?query=artist:M* AND genre:Hörbuch

Einstellungen

per GUI

Mit der grafischen Oberfläche lassen sich absichtlich nur wenige Einstellungen vornehmen.

dateisuche.png In der Dateisuche können Ordner aus der Indizierung ausgeschlossen werden.

plasmasuchplugins.png Die Plasmasuche beinhaltet alle einstellbaren Such-Module.

balooctl

Balooctl ist das Kontrollprogramm für Baloo. Es bietet verschiedene Möglichkeiten die Konfiguration auf der Kommandozeile einzustellen oder Informationen abzufragen.

Allgemeine Syntax:

balooctl [Optionen] ARGUMENTE 

mögliche Argumente:

Befehl Beschreibung
status Status der Indizierung anzeigen
enable Datei-Indizierung aktivieren
disable Datei-Indizierung deaktivieren
purge Datenbank entfernen
suspend Datei-Indizierung aussetzen
resume Datei-Indizierung wieder aufnehmen
check Nach nicht indizierten Dateien suchen und indizieren
index Angegebene Dateien indizieren
clear Angegebene Dateien nicht mehr indizieren
config Baloo-Einstellungen bearbeiten
monitor Echtzeitüberwachung starten
indexSize Verwendeten Speicherplatz anzeigen
failed Dateien mit fehlgeschlagener Indizierung auflisten

balooctl config

Die Option balooctl config bietet folgende Optionen:

Befehl Beschreibung Beispiel
add Fügt den Wert eines Einrichtungs-Parameters hinzu. Im Beispiel wird der Pfad /var/log indiziert. balooctl config add includeFolders /var/log/
rm | remove Entfernt den Wert eines Einrichtungs-Parameters. Im Beispiel wird der obige Eintrag wieder entfernt. balooctl config remove includeFolders /var/log
list | ls | show Zeigt den Wert eines Einrichtungs-Parameters balooctl config ls includeFolders
set Setzt den Wert eines Einrichtungs-Parameters. Im Beispiel wird die Indizierung versteckter Orte erlaubt. balooctl config set hidden true

Datenbanken löschen

Balooctl bietet Optionen zur Löschung an. Es können Daten selektiv aus dem Index gelöscht oder wahlweise die ganze Datenbank vernichtet werden. Alle Zusatzinformationen gehen dabei verloren!

selektiv

balooctl clear ~/vergiss.mich
balooctl clear ~/Musik/NieWiederHören/ 

vernichtend

balooctl purge 

manuell

Der manuelle Weg für ältere Plasma-Versionen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Indexdienst beenden
balooctl disable

#Datenbank manuell löschen
rm ~/.local/share/baloo/index*

#Wert für Initialisierung setzen
kwriteconfig5 --group General --key "first run" --type bool true

#Indexdienst neu starten
balooctl enable

Problembehebung

baloo_file benötigt 100% CPU

Die Indizierung der Dateien benötigt beim ersten Start - oder nach dem Neuaufbau der Informationen - sehr viel Rechenleistung. Für gewöhnlich dauert dieser Vorgang nur einige Minuten. Sollte dieser jedoch länger anhalten, kann ein Neuaufbau der Datenbank helfen. In jedem Fall sollte ein Fehlerbericht unter bugs.kde.org eingereicht werden.

baloo hängt bei einer Datei

Sollte die Indexierung bei einer einzelnen Datei hängen, so kann man diese mit

qdbus org.kde.baloo /fileindexer org.kde.baloo.fileindexer.currentFile 

ermitteln.

intern

extern