DocSearch

Zum Thema Dokumentenindexierung in DokuWiki habe ich heute für meine Schule gebastelt. Hier der technischere Teil der Dokumentation dazu.

Nach der Installation des Plugins DocSearch in DokuWiki den Konverter Apache Tika als JAR Datei nach /opt/tika legen. Den Ordner /opt/tika an www-data rekursiv und mit den Rechten 750 übergeben. Evtl. openjdk JRE nachinstallieren. Die headless Version reicht aus.

Kontrollieren, ob PHP genug RAM erhält. Das memory_limit in /etc/php5/apache2/php.ini sollte über 256MB liegen.

Die /pfad/zu/dokuwiki/lib/plugins/docsearch/conf/converter.php.dist nach converter.php kopieren und anpassen. Meine sieht nun so aus:

#<?php die() ?>
# PHP include hack

#
# Use this file to setup the document to text converter.
#
# The plugin trys to convert every media document to a text file. On this
# progress it uses a given set of external tools to convert it.
# This tools are defined per file extension.
#
# The config stores one extension and it's tool per line.
# You can use %in% and %out% for the input and output file.
#
pdf     /usr/bin/java -jar /opt/tika/tika-app-1.13.jar -t -eUTF-8 -r %in% > %out%
doc     /usr/bin/java -jar /opt/tika/tika-app-1.13.jar -t -eUTF-8 -r %in% > %out%
odt     /usr/bin/java -jar /opt/tika/tika-app-1.13.jar -t -eUTF-8 -r %in% > %out%
docx    /usr/bin/java -jar /opt/tika/tika-app-1.13.jar -t -eUTF-8 -r %in% > %out%
ppt     /usr/bin/java -jar /opt/tika/tika-app-1.13.jar -t -eUTF-8 -r %in% > %out%
odp     /usr/bin/java -jar /opt/tika/tika-app-1.13.jar -t -eUTF-8 -r %in% > %out%
pptx    /usr/bin/java -jar /opt/tika/tika-app-1.13.jar -t -eUTF-8 -r %in% > %out%
rtf     /usr/bin/java -jar /opt/tika/tika-app-1.13.jar -t -eUTF-8 -r %in% > %out%
xls     /usr/bin/java -jar /opt/tika/tika-app-1.13.jar -t -eUTF-8 -r %in% > %out%
ods     /usr/bin/java -jar /opt/tika/tika-app-1.13.jar -t -eUTF-8 -r %in% > %out%
xlsx    /usr/bin/java -jar /opt/tika/tika-app-1.13.jar -t -eUTF-8 -r %in% > %out%

Dann einen Testlauf starten und die Fehler einsammeln:

sudo -u www-data php /var/www/dokuwiki/lib/plugins/docsearch/cron.php

Evtl. sollte das Paket ttf-mscorefonts-installer nachinstalliert werden, um weniger Fontmeldungen um die Ohren gehauen zu bekommen. Ein

touch /var/www/.pdfbox.cache
chown www-data.www-data /var/www/.pdfbox.cache
chmod 750 /var/www/.pdfbox.cache

behebt noch ein paar Kleinigkeiten in der Fehlerausgabe.

Der Lauf frisst Zeit und Ressourcen. Der cronjob sollte dies berücksichtigen. Mein Eintrag in die /etc/crontab sieht so aus

23 1     * * *  www-data /usr/bin/php /var/www/dokuwiki/lib/plugins/docsearch/cron.php > /var/log/tika.log

läuft also nur einmal in der Nacht los.

Was nicht in den Griff zu bekommen sein wird, sind die vielfältigen Windows-only-Fonts, die in vielen Dokumenten verbaut sind. Da wird Tika auch in Zukunft maulen müssen. Das heißt konkret: www-data erhält E-Mails! Es empfiehlt sich deswegen einen Alias für www-data anzulegen und die Mails auf das eigene Konto zu lenken, will man nicht vom Mailserver mit Fehlern zu unzustellbaren E-Mails zugemüllt werden. Oder man lenkt die Ausgabe des Cronjobs nach /dev/null um, erfährt dann aber auch nix über reparable Fehler.