Spürhund

Desktop-Suchmaschine Beagle

01.07.2005
Im Internet sucht Google. Auf dem heimischen PC schnüffelt ein kleiner Beagle nach versteckten Informationen.

Dokumente im Internet werden rund um die Uhr von Suchmaschinen erfasst, katalogisiert und in einen Index aufgenommen. Sucht man nach einem Begriff, durchforstet die Maschine den Index und die präsentiert die gefundenen Dokumente am Bildschirm. Während die möglichst lückenlose Erfassung des Internets stetig voran schreitet, blieb der eigene Computer bislang recht unbeachtet. Angefangen bei einfachen Briefen über die E-Mail-Korrespondenz bis hin zur Musik- und Fotosammlungen speichern heutige Festplatten riesige Mengen an Daten in oftmals verwirrenden Verzeichnisstrukturen. Wer in diesem Dschungel ein altes, längst vergessenes Dokument sucht, wünscht sich oft eine Suchmaschine für den Desktop.

Diese Lücke wollen die Entwickler von Beagle schließen [1]. Als Vorbild diente die Suchfunktion aus Apples MacOS X. Der von dort bekannte schnelle und komfortable Zugriff auf gesuchte Informationen ist das erklärte Ziel der Beagle-Programmierer, auch wenn die Entwicklung noch am Anfang steht. So existiert derzeit nur eine experimentelle Version, die allerdings schon recht stabil arbeitet und ansehnliche Ergebnisse liefert. Einem Einsatz stehen somit nur noch die Installation sowie eventuell ein unpassendes Dateisystem im Weg. Letzteres betrifft insbesondere Suse-Besitzer: Beagle unterstützt derzeit keine mit Reiser4 bespielten Festplatten.

Aufbau

Beagle selbst besteht aus drei Komponenten. Die eigentliche Suchmaschine ist der Beagle-Daemon. Er grast im Hintergrund die Festplatte nach bekannten Dokumententypen ab. In seinem Inneren arbeitet die bewährte Suchmaschine Lucene des Apache-Projekts [3]. Der Daemon analysiert gespeicherte Daten und legt zum schnelleren Wiederfinden alle Informationen in einer eigenen Datenbank ab, dem so genannten Index. Hat er das erledigt, wartet er auf Suchanfragen. Diese stammen von der zweiten Komponente: einer Anwendung, die dem Benutzer eine komfortable Suchoberfläche präsentiert und die zurückgelieferten Ergebnisse übersichtlich präsentiert. In der Beagle-Terminologie heißt eine solche Anwendung Beagle-Client. Diese Zweiteilung haben die Entwickler absichtlich gewählt: Sie ermöglicht, dass verschiedene Anwendungen den Beagle-Suchdienst nutzen können. Beispielsweise gibt es neben dem simplen Suchprogramm Best (Abbildung 1) auch eine Erweiterung für den beliebten Firefox-Browser.

Abbildung 1: Das Suchprogramm Best zeigt hier die Ergebnisse zum Suchbegriff "Gnome" an. Sofern mehr Ergebnisse gefunden wurden, als in das Fenster passen, schaltet man per "Show More Results" auf die nächste Seite.

Damit eine Beagle-Client-Anwendung dem Beagle-Daemon eine Suchanfrage übermitteln kann, ist für ältere Beagle-Versionen (zum Beispiel in Suse 9.3) ein weiteres Programm notwendig: Der so genannte D-Bus bildet eine Infrastruktur zur systemweiten Kommunikation verschiedener Software-Komponenten eines Linux-Systems [4]. Die Inbetriebnahme von Beagle umfasst somit drei Schritte:

  • D-Bus starten.
  • BeagleDaemon starten.
  • Einen passenden Beagle-Client aufrufen und mit ihm eine Suchanfrage an den Beagle-Daemon richten.

Ab Version 0.0.10 setzte Beagle D-Bus nur noch optional voraus, denn Server und Client kommunizieren nun über andere Wege.

Warten auf den Bus

Wenn Sie eine moderne Distribution besitzen (beispielsweise Fedora Core 3, Ubuntu, Suse 9.3), ist der erste Punkt bereits erfüllt. denn D-Bus läuft schon auf Ihrem System. Suse Linux 9.3 enthält schon das komplette Beagle-Paket in Version 0.0.8 und startet nach der Installation über Yast D-Bus automatisch.

Als Programmiersprache für Beagle setzten die Programmierer auf das von Microsoft eingeführte C# und die Mono-Umgebung. Ähnlich wie bei Java werden damit entwickelte Programme von einem so genannten Interpreter ausgeführt, der Bestandteil des Mono-Pakets ist. Achten Sie unter Suse Linux 9.3 darauf, auch das Paket mono-data auszuwählen. In unseren Tests vergaß Yast diese wichtige Komponente. Um zu überprüfen, ob auf Ihrem System D-Bus im Hintergrund bereits läuft, geben Sie in einem Terminalfenster ein:

ps x | grep dbus

Nun sollten Sie eine Zeile finden, die die Zeichenkette dbus-daemon-1 enthält. Müssen Sie den D-Bus von Hand starten, geben Sie folgendes ein:

eval `dbus-launch`

Die Leine lösen

Als nächstes starten Sie den Beagle-Daemon. Dies geschieht ebenfalls in einem Terminalfenster mit dem Befehl

beagled --fg --debug

Der Parameter --fg legt fest, dass beagled im Vordergrund läuft, --debug schaltet ein ausführliches Protokoll ein. Möchten Sie das Programm weniger geschwätzig im Hintergrund laufen lassen, genügt der Aufruf von beagled.

Anhand der folgenden Ausgaben können Sie die Arbeit des Spürhundes verfolgen. Er arbeitet sich durch sämtliche Pfade des Home-Verzeichnisses, wobei er symbolische Links ignoriert. Andere Verzeichnisse können derzeit nur umständlich durch eine Änderung des Quellcodes hinzugefügt werden.

In der Regel nimmt Beagle alle existierenden Dateien in den Index auf. Um das zu verhindern, legen Sie eine Textdatei mit dem Namen .noindex in das Verzeichnis, das einschließlich seiner Unterverzeichnisse ausgeschlossen werden soll. Für eine Verfeinerung listen Sie die auszuschließenden Dateien in .noindex auf. Platzhalter wie ? oder * sind dabei erlaubt. Analog dazu enthält .neverindex eine Liste mit allen Dateien, die Beagle immer ausschließt.

Abhängig von der Zahl der Dateien in Ihrem Home-Verzeichnis kann die Suche durchaus eine Weile dauern. Wenn Sie bereits während der Indexierung eine Suchanfrage stellen, wird diese zwar beantwortet, die Ergebnisse berücksichtigen aber nur die bis dato indexierten Dateien.

Such!

Um eine Suchanfrage an Beagle zu richten, benötigen Sie einen Beagle-Client. Im Beagle-Paket enthalten ist der Client Best, den Sie unter Suse Linux 9.3 im Startmenü finden. Alternativ rufen Sie das kleine Werkzeug per best von der Kommandozeile auf. Nach seinem Start verankert es sich als Symbol in der Taskleiste.

Abbildung 2: Der Such-Client Best als Symbol in der KDE-Leiste. Die beiden Suchbegriffe "Gnome" und "Linux" wurden bereits zuvor verwendet.

Mit einem Rechtsklick auf das Icon zeigt Best alle bisherigen Suchbegriffe an. Ein Klick auf einen der Einträge öffnet das zugehörige Ergebnisfenster. Über die linke Maustaste gelangen Sie zum Fenster aus Abbildung 1. Diese Oberfläche arbeitet nach dem gleichen simplen Schema wie Google: Einfach den Suchbegriff eingeben, dann rechts daneben eine Dokumentenkategorie auswählen und dann auf Suchen klicken. Best sendet die Anfrage an den Beagle-Daemon, dieser sucht in seinem Index nach passenden Dokumenten und liefert das Ergebnis an Best zurück, der sie schließlich in seinem Fenster anzeigt. Ein Klick auf eines der gefundenen Dokumente startet ein passendes Programm.

Abbildung 3: Alternativ zu Best gibt es das Kommandozeilenwerkzeug "beagle-query". Es erwartet als Parameter den Suchbegriff und liefert als Ergebnis eine Liste mit allen gefundenen Dokumenten. Im Hintergrund arbeitet der BeagleDaemon.
Abbildung 4: Das Beagle-Wiki ersetzt herkömmliche Dokumentation.

Fazit

Wer den Überblick über seine Dokumente bewahren möchte oder mit vielen Dateien jonglieren muss, sollte einen Blick auf Beagle riskieren. Hat man sich einmal an die Suchfunktion gewöhnt, wird man sie so schnell nicht wieder missen wollen.

Unterstützt wird Beagle durch das Dashboard-Projekt, das derzeit allerdings noch in den ersten Wehen liegt [5]. Dashboard soll einmal die Nutzeraktivitäten überwachen und beim Auftauchen von bestimmten Stichwörtern – wie bei der Eingabe eines Satzes in einer Textverarbeitung – relevante oder interessante Referenzen auf weiterführende Dokumente liefern.

Selbst kompilieren 

Liegt Beagle Ihrer Distribution nicht bei, müssen Sie es aus den Quellen übersetzen und installieren. Aufgrund der vielen Abhängigkeiten ist dies jedoch kein leichtes Unterfangen. Dennoch geben wir einen kurzen Überblick über die Installation.

Beagle setzt einige Pakete voraus: die Mono-Umgebung, gtk-sharp, gecko-sharp, gmime, die Datenbank SQLite und libexif. Diese Pakete müssen zudem in einer bestimmten, von der Beagle-Version abhängigen Versionsnummer vorliegen. Die Übersetzung findet in derselben Reihenfolge statt, in der die Komponenten gestartet werden: zunächst das D-Bus-Paket (für Beagle-Versionen vor 0.0.10), dann der Beagle-Deamon und schließlich ein Beagle-Client. Alle drei werden mit folgenden Befehls-Dreizeiler übersetzt, wobei die Clients Best und beagle-query als Nebenprodukt des Beagle-Daemons anfallen:

./configure
make
su -c "make install"

Beim D-Bus-Paket geben Sie configure zusätzlich den Parameter --enable-mono mit. Nachdem Sie D-Bus eingespielt haben, stellen Sie sicher, dass im verwendeten Kernel die inotify-Funktion aktiviert ist. Sie wird allerdings nicht von jedem Dateisystem angeboten.

Weitere Informationen zur Übersetzung finden Sie im Beagle-Wiki [2].

Formate 

Derzeit kennt Beagle folgende Formate:

  • Microsoft: doc, ppt
  • OpenOffice: sxw, sxi, sxm
  • Portable Document Format: pdf
  • Web Pages: html
  • Rich Text Format: rtf
  • Bilder: jpg, png
  • Musik: MP3, OGG, FLAC
  • Texinfo Files: texi
  • Plain Text: txt
  • Quellcode: Java, C, C++, C#, Python

Infos

[1] Beagle-Homepage: http://www.gnome.org/projects/beagle/

[2] Dokumentation im Beagle-Wiki: http://beaglewiki.org/

[3] Apache-Lucene-Suchmaschine: http://lucene.apache.org/java/docs/index.html

[4] Linux-Hotplugging, LinuxUser 03/05, S. 91

[5] Gnome-Dashboard: http://www.nat.org/dashboard

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare