Login
Newsletter
Do, 20. April 2017, 15:00

Nextcloud mit Solr-Volltextsuche ausstatten

Der folgende kurze Tipp zeigt auf, wie man eine Nextcloud-Installation mit einer Volltextsuche austattet. Als Suchmaschine wird hier Apache Solr verwendet.

Vorausgesetzt wird ein bereits installiertes Nextcloud 12.0.0, das unter dem Pfad /var/www/nextcloud zu finden ist.

Benötigt werden die Java-JRE 1.8, erhältlich bei Oracle oder der jeweiligen Linux-Distribution.

Alle nun folgenden Schritte werden als User root durchgeführt. Der Webserver läuft unter dem User www-data. Im Beispiel wird eine externe Festplatte, die unter /mnt/EXTUSB gemountet ist, zum Speichern von Solr verwendet. Wer Solr an einem anderen Ort installieren möchte, sollte /mnt/EXTUSB durch den tatsächlichen Pfad ersetzen.

1. Lokale Verzeichnisse vorbereiten, aktuelle Version von Solr herunterladen und entpacken:

$ mkdir -p /mnt/EXTUSB/solr
$ cd /mnt/EXTUSB/solr
$ wget http://ftp.fau.de/apache/lucene/solr/6.6.0/solr-6.6.0.tgz
$ tar -zxvf solr-6.6.0.tgz
$ cd solr-6.6.0/server/solr
$ cp -fr configsets/basic_configs nextant

2. Start der solr-Datenbank mit 128 MB RAM (oder mehr, je nach verfügbarem RAM des Rechners) und Ändern des Besitzers der Dateien:

$ chown www-data:www-data /mnt/EXTUSB/solr -R
$ cd /mnt/EXTUSB/solr/solr-6.6.0
$ sudo -u www-data ./bin/solr start -m 128M
$ sudo -u www-data ./bin/solr create -c nextant

3. Erzeugen des lokalen Start-Skripts für Systemd:

$ nano /etc/systemd/system/solr.service

[Unit]
Description=Apache SOLR
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
PIDFile=/mnt/EXTUSB/solr/solr-6.6.0/bin/solr-8983.pid
ExecStart=/mnt/EXTUSB/solr/solr-6.6.0/bin/solr start -m 128M
User=www-data
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

4. Startscript aktivieren und den Dienst erstmalig starten:

$ systemctl enable solr
$ systemctl start solr

5. Erzeugen des Cron-Jobs als User root. Folgende Zeilen hinzufügen:

$ crontab -e
#Update solr index to index every 3rd hour
00 */3 * * * sudo -u www-data php /var/www/nextcloud/occ nextant:index

6. In Nextcloud als Administrator einloggen und unter den Punkt Apps die App Nextant aktivieren. Anschließend in den Einstellungen von Nextant als Adresse von solr http://127.0.0.1:8983/solr eingeben. Der Kern/core ist nextant. Mit Testen und speichern wird überprüft, ob Nextant zugänglich ist.

7. Anschließend muss einmalig der Index erstellt werden:

$ sudo -u www-data php /var/www/nextcloud/occ nextant:index

Fertig. In Nextcloud kann nun über die Suche nach Begriffen gesucht werden, und dabei werden auch Dateiinhalte berücksichtigt.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten