Um in Nextcloud Dateiinhalte zu durchsuchen, installieren Sie das Volltextsuch-Framework, die zugehörige Elasticsearch-Plattform-App und den Files-Provider. Verbinden Sie die Apps anschließend mit einem kompatiblen Elasticsearch-8-Server und erstellen Sie den Index. Dadurch wird der Dokumenttext durchsuchbar, allerdings wird auch ein separater Dienst für Sicherung, Überwachung und Wartung benötigt. Die README-Datei des aktuellen Connectors nennt Elasticsearch 8 als unterstützte Hauptversion. Prüfen Sie daher die Kompatibilität Ihrer installierten App-Version, bevor Sie eine bestimmte Elasticsearch-Version auswählen.
Wählen Sie die Konfiguration, die zu Ihrem Server passt.
Elasticsearch hilft Nutzern, Wörter in Dokumenten zu finden, die über Dateinamen und grundlegende Metadaten hinausgehen. Der Nachteil ist ein weiterer Dienst, der gesichert und gewartet werden muss, sowie ein erhöhter Speicher-, Festplatten- und CPU-Verbrauch während der Indizierung. Für eine kleine Cloud-Umgebung ist dieser Mehraufwand möglicherweise nicht gerechtfertigt; für Teams mit einem hohen Dokumentenaufkommen kann die Inhaltssuche jedoch den Preis wert sein.
Die Integration erfolgt über drei Anwendungen: Die Volltextsuche koordiniert Anbieter und Plattform, Elasticsearch verbindet das Framework mit der Engine und Files liefert Dateiinhalte. Es kann jeweils nur eine Plattform-Anwendung ausgewählt werden. Weitere Informationen finden Sie in der README-Datei des Frameworks und der README-Datei des Anbieters Files .
Diese Linux-Beispiele verwenden Debian- oder Ubuntu-Pfade und -Benutzerkonten www-data. Passen Sie Pfade und Benutzer für Container oder andere Distributionen an.
1. Kompatibilität prüfen und Elasticsearch vorbereiten
Prüfen Sie vor der Installation von Elasticsearch Ihre Nextcloud- und App-Versionen. Laut der README-Datei des Connectors wird ab App-Version 26.0.0 Elasticsearch 8 unterstützt. Gehen Sie nicht davon aus, dass Elasticsearch 9 kompatibel ist, nur weil es neuer ist. Prüfen Sie die README-Datei des Connectors und das Installations-Wiki für Ihre Version.
Installieren Sie Elasticsearch gemäß den Anweisungen von Elastic für Ihr Betriebssystem und die kompatible Hauptversion. Das Debian-Paket von Elastic enthält ein integriertes OpenJDK, sodass normalerweise keine separate Java-Installation erforderlich ist. Weitere Informationen finden Sie in der Dokumentation zur Debian-Paketinstallation von Elastic . Elasticsearch sollte nur vom Nextcloud-Host oder einem privaten Anwendungsnetzwerk aus erreichbar sein, sofern Ihre Architektur keine andere Erfordernisse enthält. Elasticsearch 8 aktiviert Sicherheitsfunktionen während der Paketinstallation; Authentifizierung und TLS werden für Netzwerkbereitstellungen beibehalten, und ein nicht authentifizierter Suchendpunkt darf niemals öffentlich im Internet zugänglich gemacht werden.
Sobald der Dienst gestartet ist, testen Sie seinen Endpunkt lokal mit dem während der Installation festgelegten Schema und den Anmeldeinformationen. Bei einer lokalen, gesicherten Instanz könnte eine Anfrage beispielsweise so aussehen curl --cacert /path/to/http_ca.crt -u elastic https://localhost:9200: Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden, anstatt es im Shell-Verlauf zu speichern. Verwenden Sie das für Ihre Installation generierte CA-Zertifikat, nicht den Platzhalterpfad. Eine erfolgreiche Antwort sollte den Elasticsearch-Knoten und die Version identifizieren. Falls dieser Test fehlschlägt, korrigieren Sie den Dienst, die Zertifikatsvertrauensstellung oder die Anmeldeinformationen, bevor Sie Nextcloud konfigurieren.
2. Installieren Sie die Nextcloud-Such-Apps.
Installieren und aktivieren Sie über die Nextcloud-Apps-Seite die Volltextsuche , die Volltextsuche für Elasticsearch Platform und die Volltextsuche für Dateienocc . Alternativ können Sie das Nextcloud-Befehlszeilen-Verwaltungstool aus dem Nextcloud-Installationsverzeichnis verwenden . Unter Debian oder Ubuntu lautet das Muster:
cd /var/www/nextcloud
sudo -E -u www-data php occ app:install fulltextsearch
sudo -E -u www-data php occ app:install fulltextsearch_elasticsearch
sudo -E -u www-data php occ app:install files_fulltextsearch
Verwenden Sie das HTTP-Konto Ihrer Distribution und befolgen Sie die occ-Richtlinien von Nextcloud . Falls eine App installiert, aber deaktiviert ist, verwenden Sie die entsprechende Option occ app:enable APP_ID. Stellen Sie sicher, dass alle drei Apps mit Ihrer Nextcloud-Version kompatibel sind.
3. Plattform und Dateianbieter konfigurieren
Öffnen Sie die Administratoreinstellungen und wählen Sie den Abschnitt „Volltextsuche“. Wählen Sie Elasticsearch als Suchplattform und geben Sie anschließend die Elasticsearch-Servlet-Adresse, einen Indexnamen sowie alle erforderlichen Verbindungsdaten oder Zertifikatseinstellungen ein, die von Ihrer installierten Connector-Version bereitgestellt werden. Die Adresse muss vom Nextcloud-Serverprozess aus erreichbar sein. Falls beide Dienste im selben Containernetzwerk laufen, localhostverweist die Adresse üblicherweise auf den Nextcloud-Container selbst und nicht auf den Elasticsearch-Container. Verwenden Sie stattdessen den Elasticsearch-Dienstnamen oder den internen Hostnamen.
Verwenden Sie einen Indexnamen in Kleinbuchstaben, z. B. „ nextcloudcloud.com“. Weisen Sie jeder Cloud einen separaten Index zu, wenn mehrere Clouds einen Dienst gemeinsam nutzen. Separate Namen erleichtern die Administration, ersetzen aber nicht die Zugriffskontrolle. Halten Sie Anmeldeinformationen von Screenshots, Tickets und dem Shell-Verlauf fern.
Aktivieren Sie in den Einstellungen des Dateianbieters die Indizierung für die von Ihren Benutzern benötigten Dateitypen und -größen. Durchsuchbare Inhalte hängen vom Anbieter und der unterstützten Extraktion ab; die alleinige Indizierung von Dateinamen macht den Text in einer PDF-Datei nicht durchsuchbar. Der Attachment-Prozessor von Elasticsearch extrahiert Text aus gängigen Dateiformaten wie PDF- und Office-Dokumenten, jedoch gelten Extraktionsbeschränkungen und Einschränkungen hinsichtlich der unterstützten Formate. In Elasticsearch 8 ist die Funktion zum Importieren von Anhängen in der Distribution enthalten; siehe die Referenz zum Attachment-Prozessor von Elastic . Bei Scans oder Bildern entspricht die normale Textextraktion in Dokumenten nicht der OCR: Fügen Sie einen OCR-Anbieter nur hinzu, wenn Sie diese Funktion benötigen und deren Anforderungen geprüft haben. Halten Sie die Dateigrößenbeschränkungen auf einem ressourcenbeschränkten Server niedrig.
4. Erstellen Sie den Index und halten Sie ihn aktuell.
Führen Sie vor der Indizierung einen Integritätscheck durch. Verwenden Sie dazu im Nextcloud-Verzeichnis Folgendes:
sudo -E -u www-data php occ fulltextsearch:check
Beheben Sie zuerst gemeldete Verbindungs-, Plattform- oder Providerfehler. Starten Sie anschließend die initiale Indexierung:
sudo -E -u www-data php occ fulltextsearch:index
Der erste Durchlauf durchsucht die Dateien der ausgewählten Benutzer und kann längere Zeit dauern. Halten Sie die SSH-Sitzung stabil oder führen Sie den Befehl in einem Terminal-Multiplexer wie z. B. aus tmuxund überwachen Sie CPU-, Arbeitsspeicher- und Festplattenauslastung. Die Indizierung kopiert extrahierten Text und Dateimetadaten in Elasticsearch; sie ersetzt keine Nextcloud-Backups. Schützen Sie den Suchindex und seine Zugangsdaten und beachten Sie, dass das Löschen oder Neuerstellen des Index einen erneuten vollständigen Indizierungsdurchlauf erfordern kann.
Stellen Sie für regelmäßige Aktualisierungen sicher, dass die Nextcloud-Hintergrundprozesse zuverlässig laufen. Das Projekt dokumentiert außerdem einen fulltextsearch:liveWorker für die nahezu sofortige Indizierung. Dieser kann die Aktualisierungsverzögerung reduzieren, erfordert aber einen zusätzlichen Überwachungsdienst. Beginnen Sie mit geplanten Jobs und fügen Sie den Worker nur hinzu, wenn die Verzögerung relevant ist. Passen Sie das Beispiel des Upstream-Dienstes an Ihre Pfade, Ihr Konto und die Startreihenfolge Ihrer Datenbank an.
Überprüfen Sie das Ergebnis und wählen Sie Ihren Kompromiss.
Nach Abschluss der Indizierung suchen Sie in einem kleinen Testdokument nach einer eindeutigen Phrase, die zwar im Dokument selbst, aber nicht im Dateinamen vorkommt. Prüfen Sie, ob Nextcloud die erwartete Datei für einen Benutzer mit Leseberechtigung zurückgibt. Laden Sie anschließend ein zweites Testdokument hoch oder bearbeiten Sie es, lassen Sie den konfigurierten Hintergrundprozess oder Live-Worker ausführen und wiederholen Sie die Suche. Ein erfolgreicher Statuscheck allein beweist nicht, dass der Dateiinhalt indiziert wurde.
Werden nur Dateinamen angezeigt, überprüfen Sie den Dateianbieter, die Einstellungen für Dateityp und -größe, die Unterstützung für die Datenextraktion sowie die Indexprotokolle. Bei Verbindungsfehlern überprüfen Sie den Endpunkt im Nextcloud-Netzwerk, die TLS-Vertrauensstellung und die Anmeldeinformationen.
Wählen Sie Elasticsearch, wenn die Inhaltssuche so wichtig ist, dass sie den Betrieb eines weiteren zustandsbehafteten Dienstes rechtfertigt. Reicht die Dateinamensuche aus, können Sie auf den zusätzlichen Ressourcen- und Sicherheitsaufwand verzichten. Überprüfen Sie vor Produktionsaktualisierungen die genaue Kombination aus Nextcloud, Anwendung und Elasticsearch; diese Konfiguration gewährleistet nicht die Unterstützung jeder Bereitstellungsmethode.