Die Elasticsearch-Integration von Nextcloud ist auch 2026 noch aktiv. Vorab sollten Sie jedoch einen wichtigen Kompatibilitätshinweis beachten: Die aktuelle Volltextsuche-App der Elasticsearch-Plattform unterstützt Elasticsearch 8, nicht Elasticsearch 9. Laut dem offiziellen Repository des Projekts sind Versionen ab 26.0.0 nur mit Elasticsearch 8 kompatibel. Darüber hinaus gibt es für Nextcloud 35 nun eine passende Elasticsearch-Plattform-Version (35.0.0), die am 18. September 2026 veröffentlicht wurde. Wenn Sie einen bestehenden Server aktualisieren, überprüfen Sie daher unbedingt die App-Version, die zu Ihrer Nextcloud-Hauptversion passt, bevor Sie Änderungen am Suchindex vornehmen.
Diese Anleitung zeigt eine praktische Einrichtung zum Indizieren von Dateiinhalten in Nextcloud mit Elasticsearch 8. Sie konzentriert sich auf den Standard-Anwendungs-Stack mit drei Komponenten: dem Volltextsuch-Framework, dem Elasticsearch-Plattform-Connector und dem Files-Provider. Die Befehle verwenden die Nextcloud- occBefehlszeilenschnittstelle (CLI), da diese einfacher zu validieren und zu automatisieren ist als die alleinige Verwendung der Weboberfläche.
Offizielle Referenzen: Nextcloud Volltextsuche - Elasticsearch Platform App , Nextcloud Elasticsearch Platform Repository , Nextcloud Volltextsuch-Framework , Nextcloud Files Volltextsuchanbieter und Elastic Single-Node Docker Installationsanleitung .
Was der Nextcloud-Volltextsuch-Stack tatsächlich enthält
Die Nextcloud-Volltextsuche ist keine einzelne Anwendung. Die zentrale Volltextsuche-Anwendung stellt das Framework bereit. Eine Plattform-Anwendung verbindet dieses Framework mit einer Suchmaschine, und eine oder mehrere Provider-Anwendungen extrahieren durchsuchbare Inhalte. Für Dateiinhalte ist der Provider „Volltextsuche – Dateien“. Elasticsearch speichert den resultierenden Index und beantwortet Suchanfragen.
- Volltextsuche: das Kernframework und die Suchorchestrierungsschicht.
- Volltextsuche – Elasticsearch-Plattform: der Konnektor, der Dokumente und Abfragen an Elasticsearch sendet.
- Volltextsuche - Dateien: Der Anbieter, der die Dateien der Benutzer dem Framework zur Indizierung zur Verfügung stellt.
- Elasticsearch 8: die externe Suchmaschine, die den Index speichert.
Die Trennung ist bei der Fehlersuche wichtig. Ein funktionierender Elasticsearch-HTTP-Endpunkt beweist nicht, dass Nextcloud Dateiinhalte extrahieren kann, und ein aktivierter Dateianbieter beweist nicht, dass der Plattform-Connector Elasticsearch erreichen kann. Der integrierte fulltextsearch:testBefehl ist hilfreich, da er die gesamte konfigurierte Kette und nicht nur eine einzelne Komponente prüft.
Bevor Sie beginnen
Sie benötigen Administratorrechte für Nextcloud, Shell-Zugriff auf den Server oder Container, auf dem Nextcloud ausgeführt wird, und eine von dieser Umgebung aus erreichbare Elasticsearch-8-Instanz. Die folgenden Beispiele setzen einen Linux-Server voraus und verwenden Docker für Elasticsearch, da dies den Suchdienst isoliert. Wenn Sie bereits einen verwalteten oder dedizierten Elasticsearch-8-Cluster betreiben, verwenden Sie stattdessen dessen vorhandenen HTTPS-Endpunkt.
Für den Produktivbetrieb sollte Port 9200 nicht direkt im öffentlichen Internet freigegeben werden. Die aktuelle Docker-Dokumentation von Elastic empfiehlt, den HTTP-Port an eine kontrollierte Schnittstelle zu binden und die Sicherheitsfunktionen beizubehalten. Elastic dokumentiert außerdem die Host-Anforderungen für vm.max_map_countDocker-Produktionsumgebungen. Behandeln Sie alle Befehle, bei denen die Sicherheitseinstellungen auf einem einzelnen Knoten deaktiviert sind, als lokale Testumgebung und nicht als Vorlage für den Produktivbetrieb.
Schritt 1: Installieren Sie die drei benötigten Nextcloud-Apps
Installieren und aktivieren Sie auf der Nextcloud-Apps-Seite die Volltextsuche , die Volltextsuche – Elasticsearch-Plattform und die Volltextsuche – Dateien . Alternativ können Sie diese auch mit dem Befehl `npm install` installieren occ, was auf Servern ohne grafische Benutzeroberfläche oft einfacher ist.
sudo -u www-data php /var/www/nextcloud/occ app:install fulltextsearch
sudo -u www-data php /var/www/nextcloud/occ app:install fulltextsearch_elasticsearch
sudo -u www-data php /var/www/nextcloud/occ app:install files_fulltextsearch
Wenn sich Ihre Nextcloud-Dateien an einem anderen Ort befinden, passen Sie den Pfad entsprechend an occ. Im offiziellen Nextcloud-Docker-Image lautet der Pfad üblicherweise `/usr/local/ nextcloud /var/www/html/occ/`. Überprüfen Sie nach der Installation mit dem Befehl `npm install --app`, occ app:listob alle drei Anwendungen unter „Aktiviert“ angezeigt werden.
Bildunterschrift: Die Nextcloud Apps-Seite mit aktiviertem Core-Full-Text-Framework, Elasticsearch-Plattform-Connector und Files-Provider.
Schritt 2: Starten Sie Elasticsearch 8 und überprüfen Sie, ob Nextcloud darauf zugreifen kann.
Der Elasticsearch-Connector benötigt Elasticsearch 8 seit der Nextcloud-App-Generation 26.0.0. Verwenden Sie Elasticsearch 9 nur dann, wenn sich die offizielle Kompatibilitätsangabe für Ihre App-Version ändert.
Für ein lokales Labor dokumentiert Elastic einen Docker-Ansatz mit einem einzelnen Knoten. Eine minimale Testinstanz kann über eine private Schnittstelle gestartet werden. In einer Produktionsumgebung sollten Authentifizierung und TLS aktiviert bleiben und die aktuellen Installationshinweise von Elastic befolgt werden, anstatt die Sicherheit zu deaktivieren.
docker run --name es01 --net elastic -p 127.0.0.1:9200:9200 -it -m 6GB docker.elastic.co/elasticsearch/elasticsearch:<ELASTICSEARCH_8_VERSION>
Elasticsearch gibt beim sicheren Standardstart das Passwort für den integrierten elasticBenutzer aus und erstellt HTTP-TLS-Zertifikate. Anschließend können Sie den Knoten mithilfe des CA-Zertifikats und der Anmeldeinformationen wie in der offiziellen Anleitung beschrieben verifizieren. Falls Nextcloud in einem separaten Docker-Container ausgeführt wird, beachten Sie, dass die 127.0.0.1URL auf den Nextcloud-Container selbst und nicht auf den Elasticsearch-Container verweist. Platzieren Sie beide Dienste in einem gemeinsamen Docker-Netzwerk und verwenden Sie den Elasticsearch-Dienstnamen, z. B. `<Elasticsearch-Dienstname>`, https://elasticsearch:9200oder leiten Sie den Zugriff über eine private Adresse.
Bildunterschrift: Terminalansicht eines Elasticsearch-Dienstes auf einem einzelnen Knoten, der gestartet und überprüft wird; für den Produktivbetrieb sollten Authentifizierung und TLS aktiviert bleiben, anstatt eine ungesicherte Laborkonfiguration zu verwenden.
Schritt 3: Nextcloud für die Verwendung von Elasticsearch konfigurieren
Die Plattform lässt sich zwar über die Verwaltungsoberfläche konfigurieren, die CLI-Konfiguration ist jedoch präziser und reproduzierbar. Die Nextcloud-eigene All-in-One-Integration konfiguriert das Framework, indem sie die Elasticsearch-Plattformklasse auswählt und anschließend den Elasticsearch-Host und den Indexnamen an den Connector übergibt.
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:configure '{"search_platform":"OCA\\FullTextSearch_Elasticsearch\\Platform\\ElasticSearchPlatform"}'
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch_elasticsearch:configure '{"elastic_host":"https://elastic:YOUR_PASSWORD@elasticsearch:9200","elastic_index":"nextcloud_index"}'
Verwenden Sie eine Host-URL, die vom Nextcloud-PHP-Prozess aus erreichbar ist. Wenn Ihr Elasticsearch-Endpunkt eine private Zertifizierungsstelle (CA) verwendet, stellen Sie sicher, dass die Nextcloud-Umgebung dieser CA vertraut, anstatt die Zertifikatsprüfung zu deaktivieren. Vermeiden Sie es, Anmeldeinformationen in der Shell-Historie auf gemeinsam genutzten Systemen zu speichern; verwenden Sie stattdessen eine für Ihre Bereitstellung geeignete geschützte Konfigurationsmethode.
Der Indexname sollte in Kleinbuchstaben geschrieben und dieser Nextcloud-Instanz zugeordnet sein. Ein Name wie „index“ nextcloud_indexist leicht zu identifizieren. Wenn mehrere Nextcloud-Instanzen einen Elasticsearch-Cluster gemeinsam nutzen, sollte jeder Instanz ein eindeutiger Indexname zugewiesen werden.
Bildunterschrift: Die Administrationsoberfläche für die Volltextsuche mit Elasticsearch als Suchplattform und einem konfigurierten Indexnamen.
Schritt 4: Wählen Sie aus, welche Dateiinhalte indexiert werden sollen.
Der Dateianbieter steuert, welche Kategorien von Dateiinhalten zur Indizierung gesendet werden. Die All-in-One-Initialisierung von Nextcloud ermöglicht derzeit die Extraktion von PDF- und Office-Dokumenten mit folgendem Befehl:
sudo -u www-data php /var/www/nextcloud/occ files_fulltextsearch:configure '{"files_pdf":true,"files_office":true}'
Die verfügbaren Anbieteroptionen können je nach App-Version variieren. Überprüfen Sie daher die aktuelle Konfiguration, bevor Sie Einstellungen aus einer älteren Anleitung übernehmen. Beachten Sie außerdem, dass die Qualität der Textextraktion von der Quelldatei abhängt. Ein normales PDF mit eingebettetem Text lässt sich deutlich einfacher indexieren als ein PDF, das nur aus gescannten Bildern besteht. Eine Volltextsuche verbessert nicht automatisch die OCR-Qualität.
Schritt 5: Testen Sie die vollständige Suchkonfiguration
Führen Sie vor dem Indizieren einer großen Bibliothek den Framework-Test aus:
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:test
Ein erfolgreicher Test sollte zeigen, dass die Plattform erreichbar ist und die konfigurierte Provider-/Plattform-Kombination funktioniert. Schlägt der Test fehl, beheben Sie die Verbindungsprobleme, bevor Sie mit der initialen Indexierung beginnen. Typische Ursachen sind die Verwendung localhostdes falschen Containers, Probleme mit der Zertifikatsvertrauenswürdigkeit, Authentifizierungsfehler, eine inkompatible Elasticsearch-Hauptversion oder eine von Elasticsearch abgelehnte Indexkonfiguration.
Schritt 6: Erstellen des Anfangsindex
Sobald der Test erfolgreich war, wird der Anfangsindex erstellt:
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index
Auf einem großen Server kann dies einige Zeit in Anspruch nehmen und CPU, Arbeitsspeicher, Speicher-I/O und Elasticsearch-Heap beanspruchen. Führen Sie den ersten Crawl während eines Zeitfensters mit geringer Serverauslastung durch und überwachen Sie die Logs von Nextcloud und Elasticsearch. Das Framework unterstützt außerdem ein Fehler-Reset-Formular, das von Nextcloud All-in-One bei der Ersteinrichtung verwendet wird.
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index '{"errors":"reset"}' --no-readline
Setzen Sie einen intakten Index nicht wiederholt und ohne triftigen Grund neu auf. Lesen Sie vor Aktualisierungen die Versionshinweise der drei Such-Apps und prüfen Sie, ob eine Neuindizierung tatsächlich erforderlich ist.
Schritt 7: Halten Sie den Index aktuell
Ein initialer Index ist nur eine Momentaufnahme. Neue Uploads und Änderungen erfordern eine kontinuierliche Indexierung. Das Volltextsuch-Framework bietet einen fulltextsearch:liveBefehl für die kontinuierliche Verarbeitung. Wenn Sie diesen verwenden, führen Sie ihn unter einem Prozess-Supervisor oder einem anderen Dienstmanager aus, damit er nach Fehlern oder Neustarts des Hosts neu gestartet wird.
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:live
Starten Sie in einer SSH-Sitzung keinen nicht verwalteten Vordergrundprozess und gehen Sie nicht davon aus, dass die Indizierung nach dem Abmelden fortgesetzt wird. Container-Bereitstellungen können den Live-Worker als dedizierten, überwachten Prozess ausführen; herkömmliche Server können systemd oder einen Supervisor verwenden. Überwachen Sie ihn wie jeden anderen Hintergrunddienst.
Schritt 8: Überprüfen Sie die Suche sowohl über die Befehlszeilenschnittstelle als auch über die Nextcloud-Oberfläche.
Nach Abschluss des ersten Crawls suchen Sie nach einem Ausdruck, der in einem bekannten Dokument vorkommt und nicht nur im Dateinamen. Dies bestätigt, dass die Inhaltsextraktion und -indizierung funktionieren. Neuere Volltextsuchversionen unterstützen auch die Suche über den Dateinamen occ, was hilfreich ist, um ein Problem der Backend-Indizierung von einem Problem im Browser oder der einheitlichen Suche zu unterscheiden.
Suchen Sie in der Weboberfläche von Nextcloud mithilfe des Suchfelds nach einem markanten Ausdruck in einer PDF-, DOCX- oder Textdatei, von der Sie wissen, dass sie indexiert wurde. Falls die Suche nach Dateinamen funktioniert, die Suche im Dokumenttext jedoch nicht, überprüfen Sie die Einstellungen des Dateianbieters und den Typ des Quelldokuments.
Bildunterschrift: Ein erfolgreicher Framework-Test und eine initiale Indexierung, gefolgt von einer Nextcloud-Suche, die indizierte Dokumente zurückgibt.
Behebung häufiger Fehler
Elasticsearch funktioniert mit curl, aber Nextcloud kann keine Verbindung herstellen.
Testen Sie aus demselben Netzwerk-Namespace wie der Nextcloud-PHP-Prozess. In Docker beweist eine erfolgreiche Anfrage vom Host nicht, dass der Nextcloud-Container den Elasticsearch-Dienst auflösen oder erreichen kann. Überprüfen Sie DNS, Container-Netzwerke, Firewall-Regeln, TLS-Vertrauensstellung und das genaue Schema der konfigurierten URL.
Der Connector meldet ein Elasticsearch-Versionsproblem.
Prüfen Sie die tatsächliche Elasticsearch-Hauptversion, nicht nur das Image-Tag, das Sie bereitstellen möchten. Das aktuelle offizielle Connector-Repository gibt weiterhin die Kompatibilität mit Elasticsearch 8 für App-Version 26.0.0 und höher an. Zum Zeitpunkt der Erstellung dieses Dokuments existiert ein offener Upstream-Request für die Unterstützung von Elasticsearch 9. Daher sollte Kompatibilität mit Elasticsearch 9 nicht vorausgesetzt werden.
Die Indizierung verbraucht zu viel Speicherplatz.
Beobachten Sie den Elasticsearch-Heap, die Container-Speicherbegrenzungen und den Host-Speicher gemeinsam. Die Docker-Produktionsdokumentation von Elastic weist auch auf Host-Einstellungen hin vm.max_map_count. Wenn die JVM beendet wird, behebt eine Erhöhung der Nextcloud-PHP-Speicherbegrenzung allein das Problem auf der Elasticsearch-Seite nicht.
Einige freigegebene oder externe Dateien fehlen.
Das Suchverhalten kann von der Unterstützung durch den Anbieter und der App-Version abhängen. Das Files-Provider-Projekt verfolgt weiterhin Probleme im Zusammenhang mit freigegebenen Ordnern, Gruppenordnern und externem Speicher. Falls sich ein Speichertyp anders verhält als gewöhnliche lokale Dateien, reproduzieren Sie das Problem mit einem kleinen, kontrollierten Beispiel und prüfen Sie den offiziellen Issue-Tracker des Anbieters, bevor Sie den gesamten Index neu erstellen.
Woran man erkennt, dass die Einrichtung abgeschlossen ist
Eine erfolgreiche Bereitstellung ist an vier Punkten erkennbar: Elasticsearch 8 ist von Nextcloud aus erreichbar, fulltextsearch:testder Testlauf fulltextsearch:indexverläuft fehlerfrei, und die Suche nach Text in einem bekannten Dokument liefert das entsprechende Ergebnis für einen autorisierten Benutzer. Halten Sie den Index-Endpunkt privat, gewährleisten Sie die Sicherheit von Elasticsearch im Produktivbetrieb und aktualisieren Sie die drei Nextcloud-Suchanwendungen entsprechend Ihrer Nextcloud-Hauptversion.
Für versionsspezifische Details verwenden Sie bitte die offizielle Releaseliste der Nextcloud Elasticsearch-Plattform und die offizielle Elastic-Docker-Dokumentation für die Produktion . Diese Quellen sind die sicherste Anlaufstelle, um Kompatibilität und Host-Anforderungen vor einem größeren Upgrade zu überprüfen.