Nextcloud stellt mittlerweile eine echte Alternative zu kommerziellen Cloud-Anbietern dar. Wenn man sich erst einmal von Google, Microsoft, Dropbox, etc. losgesagt hat, wird man die eigene Nextcloud früher oder später vermehrt nutzen und so zu einem echten „Nextcloud-Power-User“.
Über die Zeit werden sich in der eigenen Cloud immer mehr Daten ansammeln, so dass man schnell mal den Überblick verlieren kann. Hier ist eine ordentliche Suchfunktion dann essentiell. Nextcloud hat bereits ab Werk eine Suchfunktion mit an Bord, diese ist allerdings eher rudimentär: Beispielsweise kann man in der Datei-Übersicht nur nach Dateinamen suchen, nicht jedoch nach Datei-Inhalten.
Update-Historie (letztes Update: 19.10.2020)- 19.10.2020:
- Elasticsearch 7.
- Hinweise zum Update Elasticsearch 6 auf Elasticsearch 7.
- 26.05.2019:
- Hinweis hinzugefügt, dass die Einrichtung der Volltextsuche auf einem Raspberry Pi nicht empfohlen wird.
- 21.08.2018:
- Hinweise hinzugefügt, wenn der Elasticsearch-Dienst nach einem Update nicht mehr bei Systemstart gestartet wird.
Inhalt
Volltextsuche mit Full Text Search
Genau hier setzt die App Full Text Search an: Die komplette Cloud wird hier indiziert und kann danach auf einfache Art und Weise durchsucht werden. Dies beschränkt sich jedoch nicht nur auf Dateinamen, sondern auch die Inhalte von Dateien können gesucht werden.
Durch einfaches Aktivieren der App im Nextcloud App Store ist es allerdings nicht getan. Damit die App Full Text Search ihren Dienst verrichten kann, sind einige Voraussetzungen zu erfüllen. Die App ist auf eine Installation der Suchmaschine Elasticsearch angewiesen. Diese Anwendung ist wiederum in Java geschrieben, so dass ebenso eine Java-Laufzeitumgebung installiert sein muss. Der folgende Artikel beschreibt daher die Installation und Konfiguration aller benötigten Komponenten, um anschließend die Volltextsuche in Nextcloud aktivieren zu können.
Der Artikel basiert wie immer auf dem Tutorial Nextcloud auf Ubuntu Server 18.04 LTS mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban.
Voraussetzungen
Die im Rahmen dieses Artikels installierten Programme haben an sich keine besonderen Anforderungen. Allerdings wird der Speicherverbrauch durch Elasticsearch erheblich steigen. Aus der Praxis: Elasticsearch verbraucht auf meinem Testsystem (VM mit 6 GB dynamischen RAM) über 1 GB Speicher.
Die Volltextsuche funktioniert theoretisch auch auf einem Raspberry Pi (Affiliate-Link). Dennoch wird hier sehr viel RAM benötigt, so dass der Kleinst-Computer damit etwas überfordert ist. Daher wird die Einrichtung der Volltextsuche auf einem Raspberry Pi nicht empfohlen.
Installation Full Text Search
Bevor die App an sich aktiviert werden kann, sind einige andere Programme zu installieren.
Wir beginnen zunächst einmal mit der Aktualisierung des Systems:
apt-get update && apt-get upgrade -V
Installation der Java-Laufzeitumgebung
Zunächst überprüfen wir, ob bereits eine Java-Laufzeitumgebung installiert ist:
java -version
Wenn Java bereits installiert ist, wird die Java-Version angezeigt. Wenn dies Version 8 oder größer ist, ist hier nichts weiter zu installieren und die Installation von Java kann übersprungen werden.
Falls hier jedoch eine ältere Version oder folgende Meldung angezeigt wird, ist Java nicht aktuell oder gar nicht installiert:
Command ‚java‘ not found, but can be installed with:
apt install default-jre
apt install openjdk-11-jre-headless
apt install openjdk-8-jre-headless
In diesem Fall installieren wir die Laufzeitumgebung durch folgende Befehle:
apt-get install apt-transport-https ca-certificates apt-get install openjdk-8-jre
Installation Elasticsearch
Als nächstes kann die Suchmaschine installiert werden. Dazu wird erst einmal der Key des Repositories im System bekannt gemacht, da es ansonsten später zu Warnungen während der Installation kommen wird:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Nun wird das entsprechende Repository den Paket-Sourcen hinzugefügt:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Danach wird Elasticsearch mit diesem Befehl installiert:
apt-get update && apt-get install elasticsearch
Konfiguration Elasticsearch
Nach der Installation muss die Suchmaschine noch fertig konfiguriert werden, bevor diese durch Nextcloud genutzt werden kann.
Elasticsearch wird nach der Installation nicht automatisch nach dem Start des Betriebssystems gestartet. Mit folgenden Befehlen wird der Dienst nach dem Systemstart automatisch mit gestartet:
systemctl daemon-reload systemctl enable elasticsearch systemctl start elasticsearch
Anschließend installieren wir ein Plugin für Elasticsearch, damit später auch PDF-Dateien durchsucht werden können:
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
Zu guter Letzt soll die Suchmaschine nur lokal angesprochen werden können. Dazu wird die Konfigurationsdatei geöffnet:
nano /etc/elasticsearch/elasticsearch.yml
Hier suchen wir nach network.host und ändern die entsprechende Zeile ab:
network.host: 127.0.0.1
Am Ende wird der Dienst neu gestartet, damit die Änderungen übernommen werden:
service elasticsearch restart
Installation Tesseract (für OCR)
Tesseract ist eine Software für die Texterkennung (OCR). Damit wird es möglich, Text aus Bildern zu extrahieren und damit durchsuchbar zu machen. Die Installation der OCR-Software ist optional, ist aber im Rahmen der Volltextsuche empfehlenswert, da so nicht nur in Text-Dokumenten, sondern auch in Bildern gesucht werden kann.
Was heißt das nun konkret? Man stelle ich ein Foto vor, welches mit dem Smartphone aufgenommen wurde und beispielsweise ein Ortsschild zeigt. Mittels OCR kann nun auch nach dem Namen des Ortes gesucht werden und dank Volltextsuche wird einem dieses Bild auch in den Ergebnissen angezeigt. Für mich ist das ein sehr hilfreiches Feature, daher empfehle ich die Installation von Tesseract.
Dies ist auch nicht weiter aufwändig, es reicht ein Befehl:
apt-get install tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng
Hier werden auch gleich die Dateien installiert, welche für die Texterkennung für deutsche und englische Texte benötigt werden. Soll die OCR-Engine auch weitere Sprachen erkennen, so müssen zusätzlich Pakete der Form tesseract-ocr-<language> installiert werden. Eine Übersicht über alle verfügbaren Sprachen findet man hier.
Ansonsten ist nicht weiter für die Texterkennung zu installieren bzw. zu konfigurieren.
Einrichtung der Volltextsuche in Nextcloud
Nachdem nun alle Voraussetzungen installiert wurden, starten wir Elasticsearch zunächst einmal neu:
service elasticsearch restart
Installation der Apps für die Volltextsuche
Anschließend werden die entsprechenden Apps über den Nextcloud App Store installiert. Diese findet man in der Kategorie Suche.

- 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: Wenn im vorherigen Schritt die OCR-Engine installiert wurde, ist dies die Verbindung zu Tesseract.
Es gibt in dieser Kategorie evtl. noch mehrere Apps, die die Volltextsuche erweitern. Momentan gibt es hier beispielsweise noch die App für Lesezeichen: Wenn man die App Bookmarks in Nextcloud aktiviert hat, können mit Full text search – Bookmarks auch diese Lesezeichen durchsucht werden.
Konfiguration der Volltextsuche
Bevor die Volltextsuche nun verwendet werden kann, muss diese noch innerhalb Nextcloud konfiguriert werden. Dies geschieht in den Admin-Einstellungen unter Volltextsuche.

- Allgemein: Allgemeine Einstellungen zur Volltextsuche.
- Search Platform: Da momentan nur Elasticsearch installiert ist, kann man hier auch nur diesen einen Eintrag wählen.
- Elastic Search: Einstellungen für die Suchmaschine.
- Address of the Servlet: Dies ist die URL, unter der Elasticsearch verfügbar ist. In unserem Fall ist dies http://localhost:9200
- Index: Eine Elasticsearch-Installation kann mehrere Such-Indizes gleichzeitig verwalten. Im diese Indizes auseinanderzuhalten zu können, wird hier der Name des Such-Indexes angegeben. Dies kann eine beliebige Zeichenfolge sein, z.B. der Domain-Name der Cloud-Instanz.
- Dateien: Einstellungen für die Datei-Suche.
- Damit sowohl lokale Dateien, als auch Dateien indiziert werden, die auf externem Speicher liegen, aktivieren wir hier sowohl Local files, als auch External Files.
- Types: Einstellungen für verschiedene Dateitypen.
- Wir aktivieren hier Extract PDF, als auch Extract Office, damit auch PDF- und Office-Dateien durchsucht werden können. Dazu muss zuvor das Elasticsearch-Plugin ingest–attachment installiert worden sein.
- Files – Tesseract OCR: Einstellungen für die Texterkennung mit Tesseract.
- Enable OCR: Muss aktiviert werden, damit die Volltextsuche OCR verwenden kann.
- Languages: Hier sind alle Sprachen anzugeben, die zuvor im Rahmen der Installation von Tesseract mit installiert wurden. In unserem Fall: eng,deu
Die Einstellungen werden direkt nach der Eingabe übernommen.
Index anlegen
Nachdem die Volltextsuche nun einsatzbereit ist, muss der erste Index über das Kommandozeilentool occ angelegt werden. Dies geschieht über folgenden Befehl:
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index
Achtung: Je nach Größe der Nextcloud-Instanz kann dieser Befehl sehr lange dauern. Wenn ihr also bereits viele Dateien in eurer Nextcloud gespeichert habt, rechnet mal mit ein paar Stunden, bevor der erste Index erzeugt wurde.
Nach dem ersten Erzeugen des Indexes muss der o.g. Befehl nicht mehr regelmäßig ausgeführt werden. Die Aktualisierung des Indexes erfolgt dann im Rahmen des Cronjobs von Nextcloud.
Wichtig dafür ist nur, dass Nextcloud auch so konfiguriert wurde, dass ein Cronjob genutzt wird. Bei einer Ausführung von Hintergrundaufgaben per AJAX wird der Suchindex nicht auf dem Laufenden gehalten.
Die Volltextsuche in Aktion
Nach dem Anlegen des Indexes kann die Volltextsuche nun ganz einfach in Nextcloud genutzt werden. In der Datei-Übersicht kann die Suche wie bisher verwendet werden, nur dass diese nun durch die Volltextsuche ersetzt wurde.

Bei der Neuanlage von Dokumenten dauert es übrigens ein wenig, bis diese durch die Volltextsuche gefunden werden können. Das liegt daran, dass ein neues Dokument erst mit dem nächsten Cronjob-Lauf in den Index mit aufgenommen wird. Das sollte allerdings maximal 15 Minuten dauern.
Wenn Tesseract als OCR-Engine installiert wurde, kann nun nicht nur nach dem Inhalt von Dokumenten, sondern auch nach Bild-Inhalten (Text in Bildern) gesucht werden.
Syntax für die Suche
Zum Schluss noch ein paar Hinweise für die Syntax beim Suchen über Full Text Search:
- Nextcloud
Findet Dateien, die „Nextcloud“ im Pfad/Dateinamen oder als Inhalt haben. - Nex*
Findet Dateien, die „Nex“ und weitere Zeichen im Pfad/Dateinamen oder als Inhalt haben (also z.B. Nextcloud, Nexus, etc.). - Nextcloud Volltextsuche App
Findet Dateien, die „Nextcloud“ oder „Volltextsuche“ oder „App“ im Pfad/Dateinamen oder als Inhalt haben. - „Nextcloud Volltextsuche“ App
Findet Dateien, die „Nextcloud Volltextsuche“ oder „App“ im Pfad/Dateinamen oder als Inhalt haben (hier wird z.B. eine Datei mit „Nextcloud und Volltextsuche“ nicht gefunden). - +Nextcloud Volltextsuche App
Findet Dateien, die auf jeden Fall „Nextcloud“ und vielleicht „Volltextsuche“ oder „App“ im Pfad/Dateinamen oder als Inhalt haben. - +“Nextcloud Volltextsuche“ -App
Findet Dateien, die auf jeden Fall „Nextcloud Volltextsuche“, aber nicht „App“ im Pfad/Dateinamen oder als Inhalt haben. - Nextcloud in:filename
Findet Dateien, die „Nextcloud“ im Pfad oder Dateinamen enthalten (funktioniert dann wie die Standard-Suche in Nextcloud, die nur nach Dateinamen/Pfaden suchen kann). - Nextcloud in:content
Findet Dateien, die „Nextcloud“ als Inhalt haben.
Update Elasticsearch
Da wir Elasticsearch in die Paketquellen eingetragen haben, wird von Zeit zu Zeit ein Update von Elasticserarch installiert werden, wenn das System mit apt-get upgrade auf den neusten Stand gebracht wird.
Nach einem Update kann es passieren, dass die Volltextsuche in Nextcloud nicht mehr funktionsfähig ist und folgende Fehlermeldung ausgibt:
No alive nodes found in your cluster
In diesem Fall ist der Dienst für Elasticsearch vermutlich nicht gestartet. Überprüft werden kann dies mit:
service elasticsearch status
Falls hier angezeigt wird, dass der Dienst nicht gestartet werden konnte, sollten auf jeden Fall die Logs kontrolliert werden:
nano /var/log/elasticsearch/elasticsearch.log
In den meisten Fällen wird hier das Plugin „ingest-attachment“ verantwortlich sein, was man an folgender Fehlermeldung sehen kann.
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: Plugin [ingest-attachment] was built for Elasticsearch version 6.4.0 but version 6.4.1 is running
Hier muss das Plugin aktualisiert werden. Zunächst wird die alte Version entfernt:
/usr/share/elasticsearch/bin/elasticsearch-plugin remove ingest-attachment
Anschließend kann die aktualisierte Version installiert werden:
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
Nach einem Neustart des Systems sollte der Dienst wieder gestartet sein und die Volltextsuche sollte in Nextcloud auch wieder funktionieren.
Falls nicht, sollte der Dienst nochmal so konfiguriert werden, dass dieser beim Systemstart mitgestartet wird:
systemctl daemon-reload systemctl enable elasticsearch systemctl start elasticsearch
Update auf Elasticsearch 7
Der Artikel hat ursprünglich Elasticsearch in der Version 6 verwendet. Mittlerweile ist die Volltextsuche in Nextcloud auch zur Version 7 von Elasticsearch kompatibel. Die folgenden Schritte beschreiben daher, wie ein Update von Elasticsearch 6 auf Elasticsearch 7 vorgenommen werden kann.
Zunächst entfernen wir die alte Version aus den Paketquellen:
rm /etc/apt/sources.list.d/elastic-6.x.list
Nun wird noch das Ingest-Plugin entfernt:
/usr/share/elasticsearch/bin/elasticsearch-plugin remove ingest-attachment
Der Service wird nun gestoppt und vom System entfernt:
service elasticsearch stop apt purge elasticsearch
Nun werden die Paketquellen für die neue Version hinzugefügt und die Elasticsearch 7 installiert:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list apt update && apt install elasticsearch
Die Konfiguration von Elasticsearch und das Hinzufügen des Ingest-Plugins läuft analog zur Vorversion ab (siehe oben).
Nach dem Update ist es nun nur noch wichtig, dass er alte Index zunächst gelöscht wird und anschließend komplett neu aufgebaut wird:
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:reset sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index
Am Ende sollte die Volltextsuche in Nextcloud mit Elasticsearch 7 laufen.
Fazit
Eine Volltextsuche ist eine sinnvolle Erweiterung für jede Nextcloud-Installation. Gerade wenn in der Cloud nach einiger Zeit sehr viele Dateien gespeichert sind, wird man die Volltextsuche zu schätzen wissen. Ebenso kommt es vor, dass man zwar weiß, dass in irgendeinem Dokument bestimmte Inhalte zu finden sind, man sich aber nicht mehr erinnert, in welcher Datei diese Inhalte zu finden sind. Mit der Volltextsuche ist auch das kein Problem mehr.
Die OCR-Erweiterung durch Tesseract sorgt darüber hinaus, dass auch nach Inhalten in Bildern gesucht werden kann. Dies macht dann besonders Sinn, wenn man z.B. die Fotos vom Smartphone mit Hilfe der Nextcloud-App automatisch in die Cloud hochladen lässt.
Auch wenn die Einrichtung der Volltextsuche in Nextcloud etwas aufwändiger ist und zusätzliche System-Ressourcen benötigt werden, der Aufwand wird sich in den meisten Fällen allerdings wirklich lohnen.
Weiterführende Artikel
- Nextcloud auf Ubuntu Server 18.04 LTS mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban
- Ubuntu Server 18.04 LTS als Hyper-V Gastsystem installieren und optimal einrichten
- Nextcloud – Tipps & Tricks für Admins (und Benutzer)
- Linux: OCR-Texterkennung für PDF-Dateien und Bilder
Hallo Jan,
vielen Dank für die sehr gute Anleitung.
Ich habe es trotz deiner Warnung mal auf dem Raspberry Pi 4 mit 4GB installiert.
An sich habe ich keine Probleme bei der Installation gehabt und sind auch ohne Fehlermeldungen durchgelaufen.
Bis auf den elasticsearch-Dienst. Den bekomme ich nicht gestartet. Der Status ist der gleiche wie bei vatolin am 23.04.2019
elasticsearch.service – LSB: Starts elasticsearch
Loaded: loaded (/etc/init.d/elasticsearch; generated)
Active: active (exited) since Sun 2020-09-20 07:09:01 CEST; 26min ago
Docs: man:systemd-sysv-generator(8)
Process: 623 ExecStart=/etc/init.d/elasticsearch start (code=exited, status=0/SUCCESS)
Sep 20 07:09:00 nextcloudpi systemd[1]: Starting LSB: Starts elasticsearch…
Sep 20 07:09:01 nextcloudpi elasticsearch[623]: Starting Elasticsearch Server:.
Sep 20 07:09:01 nextcloudpi systemd[1]: Started LSB: Starts elasticsearch.
In den Systemlogs steht auch nichts drin, worauf es schließen könnte, dass der Dienst abgerochen wird.
Zudem bekomme ich bei fulltextsearch:test den folgenden Fehler:
.Testing your current setup:
Creating mocked content provider. ok
Testing mocked provider: get indexable documents. (2 items) ok
Loading search platform. (Elasticsearch) ok
Testing search platform. fail
In StaticNoPingConnectionPool.php line 50:
No alive nodes found in your cluster
fulltextsearch:test [–output [OUTPUT]] [-j|–json] [-d|–platform_delay PLATFOR
M_DELAY]
Der Port 9200 wird bei dem Befehl sudo netstat -tlp auch nicht angezeigt.
Ich habe gestern schon den ganzen Tag versucht den Dienst gestartet zu bekommen.
Vielleicht weiß hier noch jemand oder Du Jan weiter und kann mir helfen.
Vielen Dank schonmal.
Grüße Marco
P.S. Sorry für den RePost, dachte das wird hier unten angehängt.
Hi Marco,
schau mal nach dem Start des Dienstes in die Log-Datei (/var/log/elasticsearch/elasticsearch.log). Da steht meist eine genauere Beschreibung drin, warum er den Dienst nicht starten kann.
Gruß,
Jan
Hallo Jan,
vielen Dank für die Antwort.
Leider ist der Ordner für die Logs leer.
Hab dann in den System logs nachgesehen.
Dort steht in einer Zeile
elasticsearch server is not running but pid file exists
Somit ist auch klar, dass der Port 9200 nicht aufrufbar ist (netstat -tlp)
Hab jetzt erstmal versucht bis auf Java alles Rückgängig zu machen.
Vielleicht nutze ich in Zukunft ocrtopdf. Auch hier auf der Seite, glaube auch von dir, erklärt.
In diesem Thread
https://discuss.elastic.co/t/installing-elasticsearch-7-4-on-a-raspberry-pi-4-raspbian-buster/202599/11
habe ich am Ende gelesen, dass jemand die Version 7.4.0 auf dem Raspi zum Laufen gebracht hat.
Das werde ich evtl. Morgen Mal ausprobieren.
Es sei denn, du hast noch eine andere Lösung?
Grüße Marco
Hallo Jan,
vielen Dank für die Antwort.
Leider ist der Ordner für die Logs leer.
Hab dann in den System logs nachgesehen.
Dort steht in einer Zeile
elasticsearch server is not running but pid file exists
Somit ist auch klar, dass der Port 9200 nicht aufrufbar ist (netstat -tlp)
Hab jetzt erstmal versucht bis auf Java alles Rückgängig zu machen.
Vielleicht nutze ich in Zukunft ocrtopdf. Auch hier auf der Seite, glaube auch von dir, erklärt.
In diesem Thread
htt***discuss.elastic.co/t/installing-elasticsearch-7-4-on-a-raspberry-pi-4-raspbian-buster/202599/11
habe ich am Ende gelesen, dass jemand die Version 7.4.0 auf dem Raspi zum Laufen gebracht hat.
Das werde ich evtl. Morgen Mal ausprobieren.
Es sei denn, du hast noch eine andere Lösung?
Grüße Marco
Hallo Jan,
vielen Dank für die Antwort.
Leider ist der Ordner für die Logs leer.
Hab dann in den System logs nachgesehen.
Dort steht in einer Zeile
elasticsearch server is not running but pid file exists
Somit ist auch klar, dass der Port 9200 nicht aufrufbar ist (netstat -tlp)
Hab jetzt erstmal versucht bis auf Java alles Rückgängig zu machen.
Vielleicht nutze ich in Zukunft ocrtopdf.
Auch hier auf der Seite, glaube auch von dir, erklärt.
In diesem Thread
h t t p : / / discuss.elastic.co/t/installing-elasticsearch-7-4-on-a-raspberry-pi-4-raspbian-buster/202599/11
habe ich am Ende gelesen, dass jemand die Version 7.4.0 auf dem Raspi zum Laufen gebracht hat.
Das werde ich evtl. Morgen Mal ausprobieren.
Es sei denn, du hast noch eine andere Lösung?
Grüße Marco
Hi Marco,
also spontan fällt mir auch nichts mehr ein. Wenn du es doch zum Laufen bekommen solltest, bitte nochmal melden, würde mich auch mal interessieren.
Gruß,
Jan
Hallo Jan,
heute bin ich endlich dazu gekommen noch eine Versuch Elasticsearch zum Laufen zu bekommen.
Eins schon mal vorweg: Es hat geklappt und läuft. Juhu!!!
Bin in etwa nach folgender Anleitung vorgegangen:
https://discuss.elastic.co/t/installing-elasticsearch-7-4-on-a-raspberry-pi-4-raspbian-buster/202599/11
Post 9 von Glassman
Was ich anders ausgeführt habe ist,
– Die aktuelle Version von Elasticsearch (7.9.2) verwendet
– Bei mir war wohl jna 5.5.0.jar installiert und nicht wie in der Anleitung 4.5.1.jar
– Deswegen auch bei maven2 die Version 5.5.0.jar heruntergeladen
Meine Vorgehensweise war so:
Installation Elasticsearch
cd /home/pi/
wget https://download.bell-sw.com/java/11.0.5+11/bellsoft-jre11.0.5+11-linux-arm32-vfp-hflt.deb
sudo dpkg -i bellsoft-jre11.0.5+11-linux-arm32-vfp-hflt.deb
sudo mkdir -p /usr/share/elasticsearch/jdk
sudo cp -rf /usr/lib/jvm/bellsoft-java11-runtime-arm32-vfp-hflt/* /usr/share/elasticsearch/jdk/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-no-jdk-amd64.deb
sudo dpkg -i –force-all –ignore-depends=libc6 elasticsearch-7.9.2-no-jdk-amd64.deb
Hier kommen jetzt ein paar Meldungen währen der elasticsearch Installation:
dpkg: Warnung: Problem wird übergangen, weil –force angegeben ist:
dpkg: Warnung: Paket-Architektur (amd64) passt nicht zum System (armhf)
Vormals nicht ausgewähltes Paket elasticsearch:amd64 wird gewählt.
(Lese Datenbank … 113120 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von elasticsearch-7.9.2-no-jdk-amd64.deb …
Entpacken von elasticsearch:amd64 (7.9.2) …
dpkg: elasticsearch:amd64: Abhängigkeitsprobleme, wird aber trotzdem wie gefordert konfiguriert:
elasticsearch:amd64 hängt ab von libc6.
elasticsearch:amd64 (7.9.2) wird eingerichtet …
.
.
.
Hier geht’s mit den Befehlen weiter:
sudo nano /var/lib/dpkg/status
Suchen (STRG+W) nach ‚elasticsearch‘
In der Zeile Depands:…. den Eintrag libc6 entfernen
sudo mv /usr/share/elasticsearch/lib/jna-5.5.0.jar /usr/share/elasticsearch/lib/jna-5.5.0.jar.old
sudo wget -P /usr/share/elasticsearch/lib/ https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.5.0/jna-5.5.0.jar
echo ‚xpack.ml.enabled: false‘ | sudo tee -a /etc/elasticsearch/elasticsearch.yml
echo ‚bootstrap.system_call_filter: false‘ | sudo tee -a /etc/elasticsearch/elasticsearch.yml
systemctl enable elasticsearch
systemctl start elasticsearch
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
sudo nano /etc/elasticsearch/elasticsearch.yml
Suchen (STRG+W) nach ’network.host‘
Zeile so abändern network.host: 127.0.0.1 (# vorne entfernen)
sudo service elasticsearch restart
Danach die Indexierung wie in deiner Anleitung gestartet.
Nachdem diese dann ohne Fehler durchgelaufen ist habe ich dann gleich einen Test in nextcloud gestartet und siehe da, es wurden mir Dateien mit Text innerhalb des Dokuments aufgelistet.
Hoffe es ist etwas verständlich rüber gekommen.
Danke und Grüße
Marco
Hi Marco,
danke für die Rückmeldung und die Anleitung! Ist sicher auch für andere interessant.
Wie schaut es mit der Performance aus?
Gruß,
Jan
Hallo Jan,
ich kann aktuell nicht viel zur Performance sagen, Prozessorlast ist
normal und die Auslastung des Arbeitsspeichers liegt im Moment bei 41%.
Was ich nur gemerkt habe ist, dass die Dateiübertragung zum Teil sehr langsam ist. Zumindest über WebDAV von meinem Androiden aus.
Da weiß ich noch nicht warum das so ist.
Kannst Du was dazu sagen?
Grüße Marco
Hi Marco,
warum die Datenübertragung so langsam ist, kann ich aktuell auch nicht sagen. Ist dies generell so, oder nur bei Dateien, die von der Suche erfasst werden sollen?
Steigt die Prozessorlast sprunghaft über einen längeren Zeitraum ab, wenn ein Upload stattfindet?
Gruß,
Jan
Hallo Jan,
also, ich habe jetzt mal versucht etwas tiefer in die Übertragung zu schauen.
Die Last des Prozessors steigt bei der Übertragung auf ca. 30%.
Der Netzwerkverkehr vom Raspi ist kaum vorhanden. Es werden aber Dateien übertragen.
Ich synchronisiere mit FolderSync auf dem Androiden meinen WhatsApp-Ordner.
Ich vermute es liegt an den vielen kleinen Dateien. Wenn ich eine größere Datei übertrage, dann ist auch die Datenübertragung höher.
Trotzdem danke für deine Antworten.
Grüße Marco
Hallo Jan,
vielen Dank für die Antwort.
Leider ist der Ordner für die Logs leer.
Hab dann in den System logs nachgesehen.
Dort steht in einer Zeile
elasticsearch server is not running but pid file exists
Somit ist auch klar, dass der Port 9200 nicht aufrufbar ist (netstat -tlp)
Hab jetzt erstmal versucht bis auf Java alles Rückgängig zu machen.
Vielleicht nutze ich in Zukunft ocrtopdf.
Auch hier auf der Seite, glaube auch von dir, erklärt.
In diesem Thread
h t t p : / / discuss.elastic.co/t/installing-elasticsearch-7-4-on-a-raspberry-pi-4-raspbian-buster/202599/11
habe ich am Ende gelesen, dass jemand die Version 7.4.0 auf dem Raspi zum Laufen gebracht hat.
Das werde ich evtl. Morgen Mal ausprobieren.
Es sei denn, du hast noch eine andere Lösung?
Grüße Marco
Irgendwie kann ich dir nicht antworten. Hab ihn meinem Text einem Link, den ich unkenntlich gemacht habe. Wird trotzdem nicht veröffentlicht.
Wieder mal ein toller Artikel. Danke dafür!
Eine Frage zum Cron. muss immer sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index verwendet werden oder gibt es auch ein Kommando welches nur nach dazugekommen Dokumenten sucht
Hi Olaf,
nein, du musst gar keinen Cron-Job für die Volltextsuche hinzufügen. Wenn der normale Cron-Job für Nexrtcloud läuft, behandelt dieser auch die neuen Dokumente für die Volltextsuche.
Gruß,
Jan
Danke!
ist Elasticsearch nicht schon bei Version 7.x ?
in den sources hast du noch Version 6.x
Die letzte 6.x (6.8.6) wird noch bis zum Release 8.0.0 am 20.11.2020 unterstützt,
Wenn ich richtig auf elastic gelesen habe ist ein Update zu 7.x nicht möglich. Cluster stoppen
Also 6.8.6 stoppen
deinstallieren
dann die 7.9.2 neu installieren
und starten
Index neu anlegen
Fragen: passt das?
Geht das mit Ubuntu 18.4. ?
Hi,
ja, Elasticsearch 7 kann hier auch mit neueren Versionen der Volltextsuche genutzt werden. Dazu:
Konnte es bisher aber nur unter Ubuntu 20.04 testen, sollte aber auch unter 18.04 funktionieren.
Gruß,
Jan
Hallo Jan,
du hast einen Fehler in deiner Update zu Elasticsearch 7 Beschreibung. Dort ist immer noch der Pfad zu 6.x angegeben.
Gruß
Frank
Hi Frank,
danke für den Hinweis, wurde korrigiert.
Gruß,
Jan
Hallo zusammen,
ich konnte den Index mit dem Befehl
occ […]:reset und nicht :remove
löschen. Falls wer darüber stolpert.
Herzliche Grüße,
Florian
Hallo! Ich habe das Ganze installiert und es sieht auch alles toll aus, beim Erstellen des Index sieht auch alles gut aus. PDF-Dateien, die einen Text-Overlay enthalten, werden korrekt gefunden (wenn man das Suchfeld oben links verwendet).
PDF-Dateien ohne Text-Overlay werden nicht gefunden, das OCR scheint also nicht zu funktionieren. Habe 2h gewartet und erst mal nur 1 solche PDF-Datei eingespielt (für den Test).
Gibt es eine Möglichkeit, nachzuvollziehen, ob der OCR-Scan stattgefunden hat?
Danke!!
Hi Stephan,
die Volltextsuche selbst kann glaube ich keinen Text-Layer hinzufügen. Hier gibt es aber eine Erweiterung für die Workflow-App, dies dies übernimmt. Damit bin ich immer gut gefahren.
Gruß,
Jan
Hi Jan,
seit kurzem verbraucht der user elastic+ mit seinem prozess elasticsearch 55% der RAM Kapazität (insges. 8 GB). Ist das normal? Dadurch ist die RAM Auslastung auf meinem Server doch sehr hoch…
Hi Samuel,
ja, das konnte ich auch schon beobachten. Gerade nach einem NC-Update verbraucht Elasticsearch sehr viele Ressourcen. Das System beruhigt sich allerdings nach einer gewissen Zeit wieder (natürlich abhängig vom Umfang der NC).
Gruß,
Jan
Leider lässt sich die Full text search – Files – Tesseract OCR gar nicht mehr installieren weder über nextcloud noch über Shell manuell, da es scheinbar nur is Nextcloud 20 unterstützt ist.
Hi,
ja, hier ist schon seit längerem mal ein App-Update fällig. Mal abwarten, wann dies kommt.
Gruß,
Jan
Hallo Jan,
ich habe elasticsearch in der version 7 am laufen und in „/var/lib/elasticsearch/nodes/0/indices/[id]/“ sind Unterverzeichnisse 0-4 mit Indexen die jeweils 12-16GB groß sind. Meine Nextcloud ist nichtmal 2 TB groß mit kleineren und größeren Dateien. Ich sag mal ganz „normal“. Kann das sein das die Indexe so groß sind oder läuft da irgendwas falsch.
Viele Grüße
Marvin
Hi Marvin,
puh, hier kenne ich keine Richtwerte. Gerade mal bei einer Cloud geschaut: ca. 20 GB Nutzdaten und der von dir genannte Ordner ist ca. 250 MB groß. Grob überschlagen sollte das also passen, oder?
Ich denke, dass es auch immer darauf ankommt, ob es z.B. sehr viele und große PDFs sind, etc.
Gruß,
Jan
Hey Jan,
ich habe das Problem das ich nach einem Server Neustart elasticsearch nicht mehr starten kann. Es kommt ein Java Fehler. Plugin was build for 7.16.3 but version 7.17.0 is running
Ich hatte sowas schon mal, weiß aber nicht mehr wie das zu beheben war. Kennst du das? Kannst du da weiterhelfen?
Grüße
Pirmin
Ich habe es dann natürlich gefunden :-(
Du hast es ja schon beschrieben.
Danke
Pirmin
Hi,
OK, du hattest es ja schon selbst gefunden. Da warst du schneller als ich mit meinem Kommentar. ;-)
Gruß,
Jan
Hi Pirim,
da er von einem Plugin redet, denke ich mal, dass er das PDF-Plugin meint. Dieses muss bei jedem Update von Elasticsearch einmal entfernt und wieder hinzugefügt werden, siehe hier.
Dies sollte dein Problem eigentlich beheben.
Gruß,
Jan
Hallo,
ich habe bei Elasticsearch immer diesen Fehler bekommen:
elasticsearch.service: Failed with result ’signal‘
Geholfen hat mir dies:
https://discuss.elastic.co/t/ailed-to-start-elasticsearch-code-killed-signal-kill/278827
Falls es jemanden genauso ging als kleine Hilfe.
Lg Tino
Hi Tino,
diesen Fehler konnte ich bisher nicht beobachten, aber danke für den Hinweis!
Gruß,
Jan