Home / LinuxUser / 2012 / 01 / Desktopsuche der feinen Art: Recoll 1.16

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Debian leicht gemacht
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

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

Abbildung 1: Die Suchmaschine muss zunächst einen Index erstellen.

Abbildung 2

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
[...]
Tip a friend    Druckansicht Bookmark and Share
Kommentare

3019 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

Owncloud mit Linuxmint 15 32 Bit
Santana Muggel, 24.04.2014 16:45, 0 Antworten
Hallo, ich habe nach dem Artikel in Heft 05.2014 versucht, owncloud einzurichten. Bei der Inst...
programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...