Füge die Elasticsearch-Volltextsuche zu Nextcloud hinzu

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.

Einen Kommentar hinterlassen

Nextcloud-Dateisperrwarnung mit Redis beseitigen

Aktivieren Sie die zuverlässige Nextcloud-Dateisperrung, wählen Sie das richtige Redis- oder Valkey-Backend und überprüfen Sie, ob die Warnung verschwindet, ohne dass gleichzeitige Dateiänderungen riskiert werden.

Was nötig ist, um eine A+-Sicherheitsbewertung für Nextcloud zu erreichen

Was nötig ist, um eine A+-Sicherheitsbewertung für Nextcloud zu erreichen

Behebt häufige Nextcloud-Scan-Fehler durch aktuelle Updates, HTTPS und HSTS, präzises Reverse-Proxy-Trust und Überprüfungen gegen den öffentlichen Server.

Aktivieren Sie die serverseitige Verschlüsselung von Nextcloud mit messbaren Auswirkungen

Konfigurieren Sie Nextcloud SSE für den Speicher, der es benötigt, schützen Sie die Verschlüsselungsschlüssel und messen Sie die Übertragungs- und CPU-Auswirkungen, bevor Sie vorhandene Dateien verschlüsseln.

Füge die Elasticsearch-Volltextsuche zu Nextcloud hinzu

Verbinden Sie die Dateisuche von Nextcloud mit Elasticsearch, indizieren Sie Dokumentinhalte und wählen Sie eine Konfiguration, die Ihren Server- und Sicherheitsanforderungen entspricht.

Legen Sie eine zuverlässige Ablaufrichtlinie für gelöschte Nextcloud-Dateien fest.

Legen Sie eine zuverlässige Ablaufrichtlinie für gelöschte Nextcloud-Dateien fest.

Konfigurieren Sie Nextcloud so, dass gelöschte Dateien nach einer festgelegten Aufbewahrungsfrist entfernt werden, Hintergrundprozesse zuverlässig geplant werden und Befehle vermieden werden, die den Papierkorb aller Benutzer leeren.

Warnung „Fehlende Datenbankindizes in Nextcloud“ löschen

Warnung „Fehlende Datenbankindizes in Nextcloud“ löschen

Führen Sie die OCC-Reparatur von Nextcloud sicher durch, sehen Sie sich die Datenbankänderungen in der Vorschau an und prüfen Sie, warum die Warnung möglicherweise weiterhin angezeigt wird.

Nextclouds Upload-Limit über 2 GB hinaus erhöhen

Nextclouds Upload-Limit über 2 GB hinaus erhöhen

Ermöglichen Sie größere Nextcloud-Browser-Uploads, indem Sie die Einstellungen für PHP, Nginx oder Apache, temporären Speicher und Timeout aufeinander abstimmen – und überprüfen Sie, welches Limit die Datei blockiert.

Nextclouds PHP-Speicherwarnung auf dem Webserver beheben

Stellen Sie das PHP-Speicherlimit ein, das Nextcloud tatsächlich verwendet, starten Sie den richtigen Dienst neu und bestätigen Sie die Einstellung von 512 MB in der Admin-Übersicht.

Verbinden Sie einen S3-kompatiblen Bucket mit dem externen Speicher von Nextcloud.

Binden Sie einen kompatiblen Objektspeicher-Bucket in Nextcloud mithilfe des S3-Backends ein, und zwar mit dem richtigen Endpunkt, den richtigen Anmeldeinformationen, dem richtigen Zugriffsbereich und den richtigen Verifizierungsschritten.

Nextcloud-Daten auf ein externes Laufwerk verschieben, ohne den Speicherplatz zu beschädigen

Nextcloud-Daten auf ein externes Laufwerk verschieben, ohne den Speicherplatz zu beschädigen

Sicheres Verschieben eines Linux Nextcloud-Datenverzeichnisses auf ein externes Laufwerk mithilfe einer persistenten UUID-Einbindung, des Wartungsmodus, einer verifizierten Kopie und des Symlinks des ursprünglichen Pfads.