NEUER ARTIKEL ERSCHIENEN:
Wir beginnen mit der Aktualisierung des Servers selbst.
sudo -s
apt update && apt upgrade
Im Anschluss daran werden die Softwareanforderungen an die Volltextsuche sichergestellt und erfüllt.
apt install apt-transport-https ca-certificates apt install openjdk-8-jre
Jetzt laden wir den elasticsearch-Key des Software-Repositories herunter und publizieren diesen im System
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch |sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
um das hinzuzufügende Repository nutzen zu können:
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Elasticsearch kann nun bereits installiert werden:
apt update && apt install elasticsearch -y
Die Installation ist abgeschlossen – konfigurieren wir Elasticsearch noch für den automatischen Start:
systemctl daemon-reload systemctl enable elasticsearch systemctl start elasticsearch
Um auch PDF Dokumente inhaltlich durchsuchen zu können installieren wir noch ein Plugin für Elasticsearch:
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
Abschließend editieren wir noch die Konfiguration hinsichtlich des network.host:
nano /etc/elasticsearch/elasticsearch.yml
Tragen Sie Folgendes ein:
network.host: 127.0.0.1
Erzeugen Sie nun einen separaten Nextcloud Volltextdienst.
nano /etc/systemd/system/nextcloud-elasticsearch-worker.service
und kopieren den gesamten Inhalt hinein:
[Unit]
Description=Elasticsearch Worker for Nextcloud Fulltext Search
After=mariadb.service elasticsearch.service
[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/nextcloud
ExecStart=/usr/bin/php /var/www/nextcloud/occ fulltextsearch:live -q
ExecStop=/usr/bin/php /var/www/nextcloud/occ fulltextsearch:stop
Nice=19
Restart=always
[Install]
WantedBy=multi-user.target
Lesen Sie den Dienst neu ein, so dass nach dem Neustart beider Dienste die Volltextsuche für Nextcloud bereits vorbereitet und einsatzfähig ist.
systemctl daemon-reload && systemctl restart elasticsearch.service nextcloud-elasticsearch-worker.service
Um Text aus Bildern lesbar und somit auch durchsuchbar zu machen benötigen wir noch Tessaract (OCR).
apt-get install tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng
Nach einem Neustart des elasticsearch-Services
service elasticsearch restart
können wir mit der Einrichtung, also der Aktivierung und Konfiguration der Apps in Nextcloud fortfahren.
Aktivieren Sie mindestens diese Apps:
- Full text search – Diese App bietet die Grundfunktionen zur Volltextsuche
- Full text search – Elasticsearch Platform: Dies stellt die Verbindung zur Suchmaschine her.
- Full text search – Files: Erweitert die Dateien-App um die Volltextsuche.
- Full text search – Files – Tesseract OCR: Verbindung zu Tesseract.
Bevor die Volltextsuche in Nextcloud genutzt werden kann muss diese noch konfiguriert werden. Dies geschieht in den Nextcloud-Administratoreinstellungen unter Volltextsuche:
Die Werte werden automatisch gespeichert! Nun erzeugen wir noch initial den Volltextindex über das Nextcloud Kommandozeilentool occ:
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index
Achtung:
Je nach Größe des Datenbestands kann dieser Befehl Minuten bis Stunden dauern.
Nach dem initialen Anlegen des Volltextindexes muss der zuvor ausgeführte Befehl nicht mehr regelmäßig ausgeführt werden. Die Aktualisierung des Indexes erfolgt dann im Rahmen des Nextcloud-Cronjobs.
Nach der Indizierung finden Sie über die Suche Dokumente sowohl über die Dateienamen, als auch über Inhalte.
Sofern Updates eingespielt werden muss das Plugin aktualisiert werden. Ein Blick in das Logfile lohnt sich und gibt entsprechende Auskunft:
nano /var/log/elasticsearch/elasticsearch.log
„… org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: Plugin [ingest-attachment] was built for Elasticsearch version…“
Wir entfernen zuerst das bestehende Plugin,
/usr/share/elasticsearch/bin/elasticsearch-plugin remove ingest-attachment
um es anschließend in der neuen Version zu installieren:
/usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment
Nach einem Neustart des Dienstes wird die Volltextsuche wieder funktionieren.
Die Installation und Konfiguration der Volltextsuche für Ihren Nextcloudserver wurde erfolgreich abgeschlossen und so wünsche ich Ihnen viel Spaß mit Ihren Daten in Ihrer privaten Cloud. Über Ihre Unterstützung (diese wird ordnungsgemäß versteuert!) würden sich meine Frau, meine Zwillinge und ich sehr freuen!