AA_mars_123rf-5737630_36clicks.jpg

© 36clicks, 123rf.com

Total Recoll

Desktopsuche der feinen Art: Recoll 1.16

21.12.2011
Recoll bietet ein sehr einfach zu nutzendes Frontend für die Desktopsuche, ohne gleich alle erweiterten Funktionen vor dem Anwender zu verbergen.

Desktop-Suchmaschinen bestehen im Wesentlichen aus zwei Komponenten: Einem Crawler und einem Frontend. Der Anwender sieht normalerweise nur das Frontend, in dem er seine Anfragen eingibt. Meist unbemerkt vom Anwender versieht der Crawler seinen Dienst. Er arbeitet sich regelmäßig durch die zu indizierenden Verzeichnisse und bereitet dabei die gefundenen Dokumente so auf, dass deren Inhalt als Text zur Verfügung steht.

Bei speziellen Dateitypen wie Bildern, Videos und MP3-Files extrahiert er dazu die Metadaten der Files, bei Dokumenten deren Text. Das geschieht über sogenannte Filter, und so steht und fällt die Leistungsfähigkeit eines Crawlers mit der Qualität seiner Filter. Diese sollten beispielsweise auch in der Lage sein, gepackte Dateien zu lesen.

Aus den Textdaten erzeugt die Suchmaschine dann den Index. Besonders "schlaue" Indizes verwenden das sogenannte Stemming, das den Wortstamm indizierter Wörter als Indexeintrag nutzt. Das führt zum einen dazu, dass später unterschiedliche Schreibweisen eines Suchbegriffs zu Treffern führen, zum anderen erlaubt es auch eine einfache Rechtschreibprüfung.

Nach eben diesem Verfahren arbeiten das leistungsfähige Such-Frontend Recoll [1] und der Crawler Xapian [2], die zusammen ein schnelles und schlankes Duo abgeben. Da Recoll für den Index als Kodierung Unicode (UTF-8) verwendet, lassen sich Dokumente aller Sprachen mit diesem System verwalten. Eine Vielfalt an Filtern ermöglicht das Bearbeiten der zahlreicher Dokumententypen (siehe Kasten "Filter bauen"). Für das Stemming und die Rechtschreibprüfung greift Recoll auf Aspell zurück, als besonderes Feature unterstützt es die Indizierung von E-Mails.

Die gängigen Distributionen führen Recoll und Xapian in ihren Repositories, allerdings nicht unbedingt in der aktuellen Version. Ubuntu enthält beispielsweise nur Recoll 1.13 statt des aktuellen 1.16. Alternativ lassen sich unter Ubuntu und anderen Debian-basierten Distributionen die (aktuellen) Pakete von Debian-Sid verwenden. Offeriert Ihre Lieblingsdistribution Recoll und Xapian nicht, bleibt nur übrig, die Programme aus den Quellen ([3],[4]) zu übersetzen.

Filter bauen

Die Indexerstellung basiert wesentlich auf den eingesetzten Filtern. Die Liste der von Recoll unterstützten Eingangsformate ist lang: Text, HTML, E-Mail (alle Varianten), ODF, Microsoft Office, OOXML, AbiWord, KWord, Gaim, Lyx, Scribus, PDF, WordPerfect, Postscript, RTF, TeX, DVI, DjVu, MP3 und andere Audioformate, JPEG und weitere Bildformate. Die Bearbeitung der Dokumente erfolgt rekursiv, so dass Recoll beispielsweise auch komprimierte Anhänge berücksichtigt. Die Filter liegen als Shell-Skripts vor – daher lassen sich relativ einfach neue Filter aus den bestehenden ableiten. Dazu editieren Sie eines der Skripts und speichern es unter einem neuen Namen ab. Die Recoll-Dokumentation beschreibt die erforderlichen Schritte im Detail.

Voreinstellungen

Beim ersten Start findet Recoll im voreingestellten Verzeichnis ~/.xapian/ keinen Index und meldet dies (Abbildung 1). Via Cancel wechseln Sie nun zur Konfiguration. Zunächst sollten Sie nur einen kleinen Index definieren, etwa für Ihr Home-Verzeichnis. Sie brauchen dafür nur wenige Einstellungen in den globalen Parametern vorzunehmen (im Menü Voreinstellungen unter Indizierungskonfiguration, Abbildung 2).

Abbildung 1: Die Suchmaschine muss zunächst einen Index erstellen.
Abbildung 2: Zunächst gilt es die Indizierung zu konfigurieren.

Startverzeichnisse enthält eine Liste der zu indizierenden Ordner. Möchten Sie Ordner oder Dateien explizit ausschließen, vermerken Sie das unter Ausgelassene Pfade. Hier sind Angaben wie ~/.wine und ~/.xsession-errors sinnvoll. Um die weiteren Einstellungen brauchen Sie sich nicht unbedingt zu kümmern, sie verbessern aber den Index.

Wortstammerweiterungssprachen definiert, für welche Sprachen Recoll das Stemming vornimmt. Aspell language beeinflusst das Anlegen eines Aspell-Dictionarys. Wo Recoll den Index speichert, definiert Database directory name. In der Voreinstellung erzeugt Recoll kein Protokoll, sondern schreibt die Ergebnisse der Filter auf das Terminal, von dem aus das Programm gestartet wurde. Log Datei ermöglicht die Ausgabe in eine Datei.

TIPP

aspell config zeigt in der Shell an, welche Konfiguration für dieses wichtige Programm vorhanden ist.

Die Indexgröße hängt von vielen Faktoren ab. Neben Anzahl, Art und Inhalt der indizierten Dokumente spielen auch die verwendeten Filter eine Rolle. Oft erreicht der Index sogar die Größe der Originaldaten, manchmal – etwa bei komprimierten Eingangsdaten – wächst er sogar darüber hinaus. Enthält er dagegen hauptsächlich Metadaten aus Multimediadateien, fällt er erheblich kleiner aus.

Sollte ein Index einmal korrupt sein und beispielsweise unsinnige Ausgaben als Suchergebnisse liefern, löschen Sie am besten das Verzeichnis ~/.xapian und erzeugen einen neuen Index.

Feinschliff am Index

Voreingestellt erfolgt die Indizierung inkrementell: Recoll indiziert Dokumente nur dann erneut, wenn sie verändert wurden. Sie können das Befehlszeilenprogramm recollindex allerdings mit der Option -z zum Erzeugen eines ganz neuen Index zwingen.

Es gibt zwei Möglichkeiten, den erzeugten Index aktuell zu halten. Bei größeren Beständen sollte ein zeitlich günstig angestimmter Cron-Job – etwa nachts, bei minimaler Systemlast und wenigen Zugriffen auf den Index – den Befehl recollindex aufrufen, der dann neue und veränderte Dokumente aufnimmt. Die andere Variante benötigt relativ viele Ressourcen und eignet sich damit eher für kleine Datenbestände: Beim sogenannten Real Time Indexing startet Recollindex als Dämon und wird durch einen Inotify-Monitor (Fam, Gamin, etc.) aktiviert, sobald Sie ein Dokument erstellen oder verändern.

Beide Varianten nutzen die gleiche Konfigurationsdatei, die Sie in der Umgebungsvariable $RECOLL_CONFDIR übergeben. Recollindex akzeptiert eine abweichende Datei auch als Argument von -c. Für den Daemon-Modus haben die Entwickler zudem das kleine Shell-Script rclmon.sh bereitgestellt, das die Arbeit steuert. Sie rufen es beim Start einer X-Session direkt auf. Die Originaldokumentation beschreibt den Einsatz. Debian-Pakete installieren es unter /usr/share/recoll/examples/rclmon.sh.

Auf der Shell stoppen [Ctrl]+[C] (bzw. die Signale SIGINT und SIGTERM) das Indizieren. Beim nächsten Lauf setzt Recoll seine Arbeit dort fort, wo sie zuvor beendet wurde, berücksichtigt aber zwischenzeitlich veränderte Dokumente.

Recoll kann auch in mehreren Indizes suchen, wenn Sie aus organisatorischen Gründen verschiedene Teile eines Dateisystems in unterschiedlichen Indizes abbilden. So lassen sich etwa die unter /usr/share/ und /usr/local/share/ vorhandenen Informationen für alle Anwender in einem Index vorhalten, während im Home-Verzeichnis enthaltene Dokumente in einem zweiten Index für jeden Anwender separat gespeichert werden. Diese unterschiedlichen Indizes aktivieren Sie im Einstellungsdialog unter Externe Indizes.

Recoll speichert seine Einstellungen in der Konfigurationsdatei ~/.recoll/recoll.conf (auszugsweise in Listing 1 zu sehen). In der bereits erwähnten Umgebungsvariablen $RECOLL_CONFDIR stellen Sie gegebenenfalls andere Verzeichnisse mit Konfigurationsdateien ein. Das genaue Format dieser Datei beschreiben eine Man-Page (man 5 recoll.conf) sowie die Kommentare in der Beispieldatei /usr/share/recoll/examples.

Listing 1

[...]
topdirs = /home/
skippedPaths = /home/.../.wine/  /home/*/.wine /home/*/.wine-/
indexstemminglanguages = english german german2
aspellLanguage = de
defaultcharset = UTF-8//
followLinks = 0
textfilemaxmbs = 220
[...]

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Nadel im Heuhaufen
    Ob Brief ans Finanzamt oder Mail vom Onlinehändler – mit der Desktopsuchmaschine Recoll finden Sie wichtige Dateien mit wenigen Mausklicks.
  • Angetestet
  • Tausende Dateien und Ordner: den Überblick behalten
    Überquellende Papierstapel mit unsortierter Post erschweren die Suche nach einem wichtigen Dokument, und das gilt analog auch für digitale Dokumente auf dem Linux-PC. Wir präsentieren Lösungen für eine aufgeräumte Platte, auf der Sie schnell finden, was Sie suchen.
Kommentare

Infos zur Publikation

LU 12/2014: ANONYM & SICHER

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...