Solr Search Engine Setup für Nextcloud via Docker Compose

Logo Solr Search Engine

Heute wollen wir in diesem Tutorial Solr Search Engine installieren für unsere Nextcloud und dem Plugin Nextant, welches wir für die Texterkennung in PDF-Dateien benötigen. Nach dem
Setup sind wir in der Lage, die PDF-Dateien zu scannen und Textinhalte über die globale Suche in der Cloud zu finden.
 

Das Setup

Damit alles läuft müssen einige Abhängigkeiten installiert werden, falls nicht schon vorhanden.

apt-get install docker
apt-get install docker-compose

Wir wechseln als erstes in ein leeres Verzeichnis. Ich nutze immer ~/home dafür.
Darin wird eine docker-compose.yml Datei erstellt mit folgendem Inhalt:

version: '2'
services:
  solr:
    image: solr:latest
    ports:
    - "8983:8983"
    volumes:
    - /opt/solr:/opt/solr/server/solr/mycores
    entrypoint:
    - docker-entrypoint.sh
    - solr-precreate
    - nextant
    restart: always

die Rechte anpassen

Anschließend die benötigten Ordner (opt/solr) und (/opt/solr/mycores) erstellen und die Rechte anpassen.

mkdir /opt/solr/mycores
sudo chown 8983:8983 /opt/solr/mycores

Danach führt man die YML-Datei aus.

docker-compose up -d 


Ab sofort sollte die Solr Search Engine laufen. Das Witzige: Mit dem Image solr:latest bekommen wir das aktuelle Image Version 7.x.x, welches offiziell von Nextant nicht unterstützt wird. Aber es läuft trotzdem. Getestet und Nextcloud 12.0.4 und 13.0.0 Beta 3.
Wollt ihr den Container neu starten oder stoppen, geht dies mit docker restart solr und docker stop solr.
Damit Nextant überhaupt etwas mit Solr anfangen kann und weiß, wo es die Daten speichern muss, erstellen wir einen so genannten Core.

Core für Solr erstellen

In Solr wird der Begriff core verwendet, um auf einen einzelnen Index und die zugehörigen Transaktionsprotokoll- und Konfigurationsdateien (einschließlich der Dateien solrconfig.xml und Schema etc.) zu verweisen. Ihre Solr-Installation kann bei Bedarf mehrere Kerne haben, sodass Sie Daten mit unterschiedlichen Strukturen auf demselben Server indizieren können und mehr Kontrolle darüber haben, wie Ihre Daten verschiedenen Zielgruppen präsentiert werden.

docker exec -it  <containerid> create_core -c nextant

Nextcloud einrichten für OCR

Nachdem der Container nun läuft loggen wir uns in die Cloud ein als Admin und installieren die Nextant App. In den Einstellungen dazu muss nun folgendes eingetragen werden.
Adresse des Solr-servlet: https://127.0.0.1:8983/solr
Kern (Core): Nextant
Anschließend wechselt man in das root Verzeichnis der Nextcloud Installation und startet den Dateiscan.

sudo -u www-data php occ nextant:scan

Anmerkung:
Die Variablen wie:

  volumes:
    - /opt/solr:/opt/solr/server/solr/mycores

dienen dazu, dass die Daten nach einem Update oder Neustart nicht verloren gehen.

restart:always

sorgt dafür, dass der Container nach einem Serverneustart automatisch gestartet wird.
Unter http://domain.tld:8983/solr ist das Panel vom Solr-Server zu erreichen.
Dies sollte man mit einem Passwort absichern.
Fügt folgenden Code in den VirtualHost Abschnitt der Apache Config Datei ein und erstellt dazu ein Password.

sudo htpasswd -c /etc/apache2/htpasswd-solr solr
# Solr
ProxyPass / https://localhost:8983/solr/
ProxyPassReverse / https://localhost:8983/solr/
	AuthType Basic
	AuthName "solr"
	AuthUserFile /etc/apache2/htpasswd-solr
	Require valid-user

Nun ist eure Solr UI mit einem Passwort geschützt.
Ich hoffe diese Anleitung hat euch weitergeholfen, würde mich über ein Teilen der Anleitung freuen. ?