Marco Burmeister
private Homepage
Wenn viele Dateien mit verschiedenen Formaten (Excel, Word, LibreOffice, doc, docx, odt, ods, txt, pdf, rtf, xls, xlsx) in einem Mount-Point bzw. Verzeichnis auf einem
Linux System (hier openSUSE) liegen, kann es den Bedarf geben, diese vielen Dateien auch durchsuchen zu können.
In dem hier genannten Beispiel liegen die Dateien dann in einer Ordner-Struktur.
Ich wollte hierfür eine lokale Suchmöglichkeit haben, die nicht nur die Dateinamen erfasst, sondern auch in die Dateien schaut und diese indiziert.
Bei der Suche bin ich auf das Tool mit dem Namen "Recoll" gestoßen.
Am Ende haben wir ein indizertes Verzeichnis, welches mit Kommandozeilen-Tool durchsucht werden können. Als Ausgabe erhalten wir
die Filenamen in denen der Suchbegriff gefunden worden ist.
Die Anleitung habe ich nach der Einrichtung geschrieben. Ich hoffe, ich habe nichts vergessen.
Sie soll mir helfen, wenn ich das nochmals einrichten muss.
Zu beachten ist noch, dass der erstellte Index so groß werden kann, wie die Original-Daten an Platz verbrauchen. Je nach Situation kann
er auch größer sein!
Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Die Seite ist in die folgenden Bereiche eingeteilt:
In meiner Implementierung nutze ich auf dem Linux-System nur einen OS Benutzer mit dem Namen "ich".
Unter diesem wird Recoll laufen und nur für diesen werden die Dateien indiziert.
Um die Software "Recoll" zu installieren sind bei openSUSE 16 Stand April 2026 entweder die Sourcen zu nutzen oder
weitere Repositories hinzuzufügen.
Hier kommen wir auch zu den vorbereitenden Aufgaben und zur Umgebung.
| Objekt-Art | Objekt | Anmerkung |
|---|---|---|
| OS Benutzer | ich | Benutzer im OS, der Recoll nutzen wird. |
| Verzeichnis | /SRV | gemountetes Linux Filesystem mit den verschiedenen Dateien in einer Ordner-Struktur |
| Verzeichnis | /SRV/.recoll | Verzeichnis zur Ablage der Daten von Recoll |
zypper ar -fp 74 'https://download.opensuse.org/repositories/KDE:/Qt6/openSUSE_Leap_$releasever' KDE-Qt6
zypper ar -fp 74 'https://download.opensuse.org/repositories/KDE:/Frameworks/openSUSE_Leap_$releasever' KDE-Frameworks
zypper ar -fp 75 'https://download.opensuse.org/repositories/KDE:/Applications/KDE_Frameworks5_openSUSE_Leap_$releasever' KDE-Applications
zypper ar -fp 75 'https://download.opensuse.org/repositories/KDE:/Extra/KDE_Applications_openSUSE_Leap_$releasever' KDE-Extra
pip3 install python-docx --break-system-packages
| Dateiendung | Software | Recoll-Filter |
|---|---|---|
.txt | Kein Zusatz notwendig | – (intern) |
.html / .htm | Kein Zusatz notwendig | – (intern) |
.rtf | unrtf | rclrtf.py |
.doc | LibreOffice (soffice) | rcldoc.py |
.docx | python-docx | openxml-word-body.xsl |
.xls | rclxls.py + xls-dump.py | rclxls.py |
.xlsx | python-docx / xsltproc | python-docx / xsltproc |
.odt | LibreOffice (soffice) | opendoc-body.xsl |
.ods | LibreOffice (soffice) | opendoc-body.xsl |
.pdf (Text) | poppler-tools (pdftotext) | rclpdf.py |
.pdf (Bild) | tesseract-ocr / pdftoppm | rclpdf.py → rclocr.py |
Recoll im gleichen Mount-Point / Verzeichnis abgelegt,
in dem auch die Daten liegen. Gegenüber der Standard-Installation, bei dem die Daten-Strukturen von Recoll alle unterhalb
von $HOME/[OS-Benutzername] abgelegt werden.
Recoll beginnen.
ich an/SRV mit den ganzen Dateien ist bereits vorhanden und der OS Benutzer ich hat volle
Rechte in dem VerzeichnisRecoll ein Verzeichnis an:mkdir /SRV/.recoll
cat > /SRV/.recoll/recoll.conf << 'EOF'
topdirs = /SRV
dbdir = /SRV/.recoll/xapiandb
skippedPaths = /SRV/.recoll /SRV/lost+found
skippedNames = .* tmp cache Cache Trash Thumbs.db desktop.ini
followLinks = 1
indexedmimetypes = \
text/plain \
text/html \
text/rtf \
application/rtf \
application/msword \
application/vnd.openxmlformats-officedocument.wordprocessingml.document \
application/vnd.ms-excel \
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet \
application/vnd.oasis.opendocument.text \
application/vnd.oasis.opendocument.spreadsheet \
application/vnd.oasis.opendocument.presentation \
application/vnd.oasis.opendocument.text-template \
application/vnd.oasis.opendocument.spreadsheet-template \
application/pdf
unac_except_trans = ää Ää öö Öö üü Üü ßss
# OCR als Fallback für Bild-PDFs
pdfocr = 1
ocrprogram = rclocr.py
tesseractlang = deu+eng
EOF
mimeconf für die OCR Unterstützung von PDFs ein.
# Systemkonfiguration als Basis kopieren
cp /usr/share/Recoll/examples/mimeconf /SRV/.recoll/mimeconf
# Zeilennummer des PDF-Handlers ermitteln
grep -n "application/pdf = execm" /SRV/.recoll/mimeconf
# rclpdf.py nutzt automatisch OCR wenn pdfocr=1 in recoll.conf gesetzt ist
Weitere Konfigurationsdateien kopieren
for f in fields mimemap mimeview ptrans; do
cp /usr/share/Recoll/examples/$f /SRV/.recoll/ 2>/dev/null
done
/SRV/.recoll/backends an.
cat > /SRV/.recoll/backends << 'EOF'
# Keine externen Indexer für diese Instanz
EOF
/tmp dokumentieren
(wichtig ist der fett-markierte Aufruf (nohup recollindex -c /SRV/.recoll -z ) -
"-z" leert die Datenbank):
nohup recollindex -c /SRV/.recoll -z > /tmp/recoll-dokumentation.log 2>&1 &
echo "FS_Doku PID: $!"
recollindex -c /SRV/.recoll
recollindex -c /SRV/.recoll -r -p "*.pdf" /SRV
resuch [Suchwort] nach dem Suchwort gesucht werden. Als Ausgabe erhalten
wir alle Dateinamen, in denen der Suchbegriff gefunden wurde.
cat >> ~/.bashrc << 'EOF'
# Recoll Indexer
alias reindsrv='recollindex -c /SRV/.recoll'
# Recoll Suche
alias resuch='recoll -c /SRV/.recoll -t'
EOF
source ~/.bashrc
systemd-Scripte, welche die Suchmaschine automatisch aktuell halten.
ich
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/recoll-srv.service << 'EOF'
[Unit]
Description=Recoll Indexer
After=local-fs.target
[Service]
ExecStart=/usr/bin/recollindex -c /SRV/.recoll
KillSignal=SIGTERM
TimeoutStopSec=30
EOF
cat > ~/.config/systemd/user/recoll-srv.timer << 'EOF'
[Unit]
Description=Recoll SRV – täglich oder nach Boot
[Timer]
OnCalendar=*-*-* 01:00:00
Persistent=true
OnBootSec=5min
[Install]
WantedBy=timers.target
EOF
systemctl --user daemon-reload
systemctl --user enable --now recoll-srv.timer
# Status prüfen
systemctl --user list-timers --all | grep Recoll
ich nicht imemr angemeldet sein muss:
loginctl show-user $USER | grep Linger
# Aktivieren
sudo loginctl enable-linger $USER
Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Für den Inhalt von Internet-Seiten, auf die von dieser Seite verwiesen wird, übernehme ich keine Verantwortung!
Marco Burmeister, Copyright © 2026 - 2026
zuletzt geändert: 2026-04-08
URL: https://www.marco-burmeister.de/helferlein/de_linux_suchmaschine_recoll.html
Impressum