1904321

Volltextsuche: Dateien in Linux durchforsten

23.08.2014 | 09:41 Uhr |

Suchen ist gut. Finden ist besser: Unter Linux hilft dabei das Programm Recoll, mit dem Sie schnell Inhalte in Office-Dokumenten, PDFs und anderen Dateien finden.

Auf den meisten PCs liegen zahlreiche Dokumente, MP3s, Bilder und andere Dateien. Im Laufe der Zeit wird die Sammlung immer unübersichtlicher: Selbst wer alles sorgfältig in Ordnern organisiert, muss oft nach dem Gewünschten suchen. Suchfunktionen stehen daher beim Design von Betriebssystem und Benutzeroberflächen hoch im Kurs. Statt mühsamer Navigation im Dateimanager hilft eine Suche beim Aufspüren von selbst erstellen Dateien oder installierten Programmen.

Dabei werden jedoch nur die Dateinamen berücksichtigt. Wer auch die Inhalte von Textdokumenten oder die Metadaten von Bild- und Audiodateien durchsuchen will, benötigt spezielle Programme. Eine schnelle und leicht bedienbare Suchmaschine für den Linux-Desktop ist Recoll. Das Programm bietet eine grafische Oberfläche für den Desktop, und es verarbeitet im Netzwerk auch Anfragen über den Webbrowser. Dieser Beitrag erläutert die Einrichtung bis zum Ausbau als Dokumentenzentrale im Netz.

1. Direkte Suche versus Suchindex

Internet-Suchmaschinen suggerieren, dass sich jede Information in Sekundenbruchteilen auffinden lässt. Die dahinterliegende Technik ist aber alles andere als trivial. Die Datenmenge auf dem heimischen PC ist zwar nicht mit den Massen der Webseiten vergleichbar, die Google & Co erfassen, dafür ist aber auch die Leistungsfähigkeit des Rechners deutlich geringer. Das Problem ist identisch: Unterschiedliche Dateitypen müssen schnell erfasst, katalogisiert, und die Inhalte müssen durchsuchbar werden.

Die direkte Suche in Dateien ist langsam und kommt nur in Frage, wenn die Dateianzahl sehr gering ist. Bei vielen Dateien ist ein Suchindex effektiver. Eine Indexer-Software erfasst dafür die Dateien, erstellt aus dem Inhalt Wortlisten und speichert die Beziehungen zwischen Dateien und Wörtern in einer Datenbank. Der resultierende Index ist im Vergleich zur durchsuchten Datenmenge relativ klein und lässt sich daher schnell durchsuchen. Allerdings hat auch diese Technik Nachteile: Der Suchindex muss jedes Mal aktualisiert werden, wenn neue Dateien aufgenommen werden sollen. Außerdem lassen sich nur Inhalte aus Dateien erfassen, deren Struktur die Indexer-Software kennt. Bei Text- oder HTML-Dateien ist das kein Problem. Anders sieht es mit PDFs, Office-Dokumenten oder Meta-Informationen in MP3s oder Bilddateien aus. Hier sind Filterprogramme nötig, die die Daten extrahieren und der Indexer-Software zur Verfügung stellen.

Google Tricks: So suchen Sie besser im Netz

Recoll lässt sich bei den meisten Linux-Distributionen bequem über den Paketmanager installieren. Allerdings gibt es hier oft nicht die aktuellste Version. Updates finden Sie aber direkt beim Software-Entwickler (www.recoll.org).
Vergrößern Recoll lässt sich bei den meisten Linux-Distributionen bequem über den Paketmanager installieren. Allerdings gibt es hier oft nicht die aktuellste Version. Updates finden Sie aber direkt beim Software-Entwickler (www.recoll.org).

2. Recoll installieren und Suchindex erstellen

Viele Linux-Distributionen wie Debian, Fedora oder Ubuntu bieten Recoll standardmäßig über die jeweilige Paketverwaltung an. Nutzer von Open Suse finden es im Repository „KDE:Extra“ des Build Service ( www.pcwelt.de/c8jg ). Frische Programmpakete für diverse Distributionen gibt es auch über den Download-Link auf www.recoll.org . Im Folgenden beschreiben wir die Installation unter Ubuntu 13.10.

Öffnen Sie das Ubuntu Software-Center und suchen Sie nach „recoll“. Klicken Sie auf das Suchergebnis und dann auf „Installieren“. Gehen Sie auf „Weitere Informationen“. Unter „Zusätzliche Erweiterungen“ sehen Sie eine Liste mit Tools, die Recoll für die Indizierung bestimmter Dateitypen nutzen kann. Setzen Sie Häkchen vor allen Dateitypen, die Sie nutzen wollen, und klicken Sie auf „Änderungen übernehmen“. Empfehlenswert sind unter anderem die Pakete „antiword“ für Microsoft Word-DOC-Dateien, „pstotext“ für PDFs, „libimage-exiftool-perl“ für Exif-Daten in Bilddateien und „xsltproc“ für Open Office/Libre Office und Microsoft Office Open XML (DOCX) . Von Haus aus unterstützt Recoll unter anderem Textund HTML-Dateien sowie die Mailbox- Formate von Thunderbird und Evolution.

Ubuntu 13.10 installiert die Recoll-Version 1.17.3. Diese ist nicht mehr ganz aktuell und außerdem nur teilweise auf Deutsch übersetzt. Zur Aktualisierung binden Sie über

sudo add-apt-repository ppa:recoll-backports/recoll-1.15-on

eine zusätzliche Paketquelle ein und aktualisieren das Programm dann über die zwei Zeilen

sudo apt-get update sudo apt-get install recoll
Vor der ersten Indexerstellung steht die Konfiguration: Auf der Registerkarte „Globale Parameter“ können Sie angeben, welche Ordner Sie in den Index aufnehmen, welche Sie ausschließen wollen.
Vergrößern Vor der ersten Indexerstellung steht die Konfiguration: Auf der Registerkarte „Globale Parameter“ können Sie angeben, welche Ordner Sie in den Index aufnehmen, welche Sie ausschließen wollen.

3. Den Suchindex von Recoll konfigurieren

Beim ersten Start schlägt Recoll vor, einen Suchindex zu erstellen. Klicken Sie zunächst auf „Schließen“, um das Programm zuerst zu kofigurieren. Gehen Sie im Menü auf „Einstellungen -> Index-Einstellungen“. Auf der Registerkarte „Globale Parameter“ legen Sie unter „Start-Verzeichnisse“ fest, welche Ordner in den Suchindex aufgenommen werden sollen. Standardmäßig ist hier „~“ vorgegeben, also Ihr komplettes Home-Verzeichnis. Wenn Sie dort nur bestimmte Ordner indexieren möchten, entfernen Sie „~“ über die „+“-Schaltfläche und fügen beispielsweise die Ordner „Dokumente“ und „Musik“ über die „+“-Schaltfläche hinzu. Entsprechend lassen sich unter „Auszulassende Pfade“ einzelne Ordner ausschließen. Unter „Stemming-Sprachen“ fügen Sie über die „+“-Schaltfläche die Sprachen „german“ und „german2“ hinzu. Hinter „Unac Ausnahmen“ steht eine Liste mit Sonderzeichen, die im Index berücksichtigt werden sollen. Bei der Installation auf einem deutschsprachigen System sind hier bereits Umlautgruppen wie „ää Ää öö Öö“ vorgegeben. Wenn Sie Dokumente in anderen Sprachen etwa mit Akzent-Zeichen oder Tilde besitzen, fügen Sie die Zeichen an die Liste an.

In das Recoll-Suchfeld können Sie einfach Suchwörter eintippen. Es sind aber auch komplexe Abfragen möglich, etwa mit „author::“ nach dem Verfasser von Office-Dokumenten.
Vergrößern In das Recoll-Suchfeld können Sie einfach Suchwörter eintippen. Es sind aber auch komplexe Abfragen möglich, etwa mit „author::“ nach dem Verfasser von Office-Dokumenten.

Auf der Registerkarte „Lokale Parameter“ legen Sie Verzeichnisse und Dateinamen fest, die nicht im Index auftauchen sollen. Hinter „Auszulassende Namen“ ist bereits eine globale Standardliste vorgegeben. Bei „Angepasste Unterverzeichnisse“ können Sie einzelne Verzeichnisse hinzufügen, für die die Regeln auf dieser Registerkarte gelten sollen. Der Wert hinter „Standard-Zeichensatz“ legt dabei jeweils den Zeichensatz für Dateien fest, wenn Recoll ihn nicht automatisch ermitteln kann. Ohne Angabe gilt die „Locale“ des Betriebssystems, bei aktuellen Linux-Distributionen also „UTF-8“. Wenn ein Verzeichnis beispielsweise Dateien mit dem Zeichensatz „USASCII“ enthält, tragen Sie dieses bei „Angepasste Unterverzeichnisse“ ein und ändern dann den Wert hinter „Standard-Zeichensatz“.

Zum Abschluss der Konfiguration klicken Sie auf „OK“ und gehen dann im Menü auf „Datei -> Index aktualisieren“.

Profi-Tricks: So finden Sie jede Datei sofort

4. Abfragesyntax: Mit Recoll suchen und finden

Das Hauptfenster von Recoll ist recht übersichtlich. Es zeigt das Suchfeld und einige Suchoptionen. Voreingestellt ist links neben dem Suchfeld die Auswahl „Suchsprache“ (englisch: „Query language“). Damit sind strukturierte Suchanfragen mit einer speziellen Abfragesyntax gemeint. Geben Sie beispielsweise

author:"Vorname Nachname" Lorem ipsum

in das Suchfeld ein, und klicken Sie auf „Suchen“ oder drücken die Enter-Taste. Im Suchergebnis erscheinen alle Dokumente, deren Metadaten den Autorennamen „Vorname Nachname“ enthalten und in denen sowohl der Begriff „Lorem“ als auch „ipsum“ vorkommt. Recoll verknüpft die Suchbegriffe also stillschweigend mit einem logischen UND. Wenn Sie ein OR dazwischen setzen, findet das Programm Dateien, in denen der eine oder der andere Begriff vorkommt. Metadaten wie „author“ sind zusätzliche Infos, die beispielsweise in Libre-Office-Dokumenten vorkommen, wenn Sie über „Extras -> Optionen -> LibreOffice ->Benutzerdaten“ einen Namen eingetragen haben.

Recoll unterstützt eine ganze Reihe von Dateiattributen und Metadaten. Neben „author:“ sind die wichtigsten:

filename: Dateiname
ext: Dateinamenerweiterung
title: Dokumenttitel (Metainfo etwa in Office und PDF-Dateien)
dir: Ordnerfilter gemäß Dateisystem
keyword: optionale Metainfos in Office-, Bild- und PDF-Dateien
size: Dateigröße, typischerweise in der Form „size>1m“
date: Erstelldatum, etwa „date=2010-01-01/2010-06-01“

Solche Suchfelder können mit den eigentlichen Suchbegriffen beliebig kombiniert werden. Ein vorgestelltes Minuszeichen schließt den nachfolgenden Suchfilter aus: So könnte etwa ein „-dir:bin“ den Ordner „bin“ explizit ausschließen.

Die „Erweiterte Suche“ ist eine Alternative zur direkten Eingabe komplexer Suchabfragen. Die vorgegebenen Ausdrücke lassen sich beliebig kombinieren.
Vergrößern Die „Erweiterte Suche“ ist eine Alternative zur direkten Eingabe komplexer Suchabfragen. Die vorgegebenen Ausdrücke lassen sich beliebig kombinieren.

Groß- und Kleinschreibung werden nicht unterschieden. Mehrere Wörter in Anführungszeichen müssen genau in dieser Reihenfolge im Text vorkommen. Das gilt im obigen Beispiel für „Vorname Nachname“ und würde auch für „Lorem ipsum“ gelten. Platzhalterzeichen wie „Lor*“ oder „Lor?“ funktionieren ebenfalls. Ersterer findet „Lor“, „Lorem“ oder „Lora“, der zweite nur „Lora“ oder „Lore“.

Hilfe bei der Formulierung komplexer Suchanfragen erhalten Sie über „Werkzeuge -> Erweiterte Suche“. Hier können Sie Suchausdrücke über Auswahlboxen zusammenstellen und auf der Registerkarte „Finden“ die Suche auf bestimmte Dateitypen oder Dateigrößen beschränken. Weitere Infos und Beispiele zu Suchabfragen finden Sie im Recoll-Handbuch über www.pcwelt.de/dnrm .

Wie immer Sie suchen: Im Suchergebnis sehen Sie den Dateinamen sowie den Pfad der gefundenen Dateien und meist auch einen kurzen Auszug aus dem Inhalt. Bei PDF-Dateien sehen Sie den Link „Snippets“, der Ihnen die Zeilen mit den Fundstellen auflistet. Mit „Öffnen“ laden Sie PDF in den Dokument-Betrachter. Hier wird Ihnen dann auch gleich die erste Fundstelle angezeigt, weitere Ergebnisse erscheinen für die schnelle Navigation in der Seitenleiste.

Weitere Einstellungen für Suchabfragen: Sie können links neben dem Suchfeld auch „Irgendein Ausdruck“ (ODER-Verknüpfung) oder „Alle Ausdrücke“ (UND-Verknüpfung) auswählen. In diesem Modus sind Suchabfragen wie „author:“ oder „date=“ nicht möglich. Außerdem gibt es die Einstellung „Dateiname“ für die Suche nach Ordner oder Dateinamen. Ferner gibt es noch Optionen wie „Medien“ oder „Text“, die nach Inhaltstyp filtern.

Suche im Terminalfenster: Auch für die Freunde der Kommandozeile hat Recoll etwas zu bieten. Der Befehl recoll -h gibt eine Hilfe zu den möglichen Parametern aus. Mit der Zeile

recoll -t -q 'Lorem ipsum'

beispielsweise führen Sie eine Suche durch, bei der die Suchbegriffe mit einem logischen UND verknüpft sind. Verwenden Sie einfache Anführungsstriche, damit die Suchwörter nicht von der Shell interpretiert werden. Mit

recoll -t -q '"Lorem Ipsum"'

suchen Sie nach dem exakten Ausdruck.

Tipps und Tricks zum Linux-Desktop

Ein einfach zu installierender Webserver bringt die Recoll-Oberfläche in den Browser. Die Suchfunktionen entsprechen in etwa denen des Desktop-Programms.
Vergrößern Ein einfach zu installierender Webserver bringt die Recoll-Oberfläche in den Browser. Die Suchfunktionen entsprechen in etwa denen des Desktop-Programms.

5. Recoll-Suche im Netzwerk

Der Recoll-Suchindex lässt sich auch über das Netzwerk abfragen. Dazu richten Sie einen kleinen Webserver ein, der die Anfragen entgegennimmt. Laden Sie sich das Paket „ recoll-webui “ herunter.

Auf der Seite finden Sie mehrere Download-Links für die unterschiedlichen Recoll-Versionen. Entpacken Sie die heruntergeladene ZIP-Datei beispielsweise in Ihr Home-Verzeichnis in den Ordner „recoll“. Damit der Webserver für alle Rechner im Netzwerk erreichbar ist, öffnen Sie die Datei „webui-standalone.py“ in einem Editor. Ändern Sie dort „host=‘localhost‘“ auf „host=‘0.0.0.0‘“. Sie können den Server im Verzeichnis „recoll“ dann auf der Kommandozeile mit

./webui-standalone.py

manuell starten und im Browser mit der Adresse http://localhost:8080 aufrufen. Auf anderen PCs verwenden Sie statt „localhost“ die IP-Nummer oder den Rechnernamen. Der Server ist am zuverlässigsten erreichbar, wenn Sie ihm eine feste IP-Adresse zuweisen.

Die Oberfläche lässt sich bei der Suche ähnlich bedienen wie unter -> Punkt 4 beschrieben. Nach einem Klick auf „Settings“ können Sie den Link „Register recoll into browser search engines“ nutzen, um den Dienst als neue Suchmaschine im Browser anzumelden.

Auch die Suchergebnisse lassen sich ähnlich nutzen wie beim Recoll-Programm für den Desktop. Allerdings lassen sich die „_le://“-Links hinter den Überschriften nicht ohne weiteres nutzen. Dazu müssten Sie das Verzeichnis mit den Dateien auf dem Server auf jedem Client unter dem gleichen Pfad mounten.

Es gibt jedoch bei jeder Fundstelle auch einen Link „Download“, über die Sie die Datei herunterladen oder mit der zugehörigen Anwendung öffnen können.

Autostart für den Webserver: Wenn der Webserver automatisch starten soll, installieren Sie zusätzlich das Paket „supervisor“. Öffnen Sie als root die Datei „/etc/supervisior/supervisor. conf“ in einem Editor. Tragen Sie dann am Ende der Datei die folgenden drei Zeilen ein:

[program:RecollWebUI] command=/home/te/recoll/webui-standalone.py user=te

Passen Sie die Pfadangabe und den Benutzernamen entsprechend Ihrer Konfiguration an. Mit der Zeile

sudo service supervisor restart

starten Sie den Webserver als Dienst.

Index manuell oder automatisch aktualisieren

Wenn neue Dateien in den indexierten Verzeichnissen hinzukommen, müssen Sie den Index aktualisieren. Dazu klicken Sie in Recoll auf „Datei -> Index aktualisieren“. Oder Sie wählen „Datei -> Index neu aufbauen“, um den Index ganz neu zu erstellen.

Das lässt sich über „Einstellungen -> Zeitplan für Indizierung“ auch automatisieren. Sie können auf „Cron-Zeitplan“ klicken und festlegen, zu welchem Zeitpunkt die Aktualisierung erfolgen soll. Tragen Sie hinter „Wochentag“ ein „*“ ein, hinter „Stunden“ eine „15“ und hinter Minuten eine „20“. Dann wird der Index jeden Tag um 15:20 Uhr erneuert. Klicken Sie zum Abschluss auf „Aktivieren“.

Die andere Option des Zeitplaners heißt „Start der Echtzeit-Indizierung“. Darüber aktivieren Sie einen Hintergrunddienst, der den Index automatisch aktualisiert, sobald sich Dateien ändern.

0 Kommentare zu diesem Artikel
1904321