Volltextsuche in Nextcloud (mit OCR)

Nextcloud Logo

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.

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.

Nextcloud App Store: Apps für die Volltextsuche
Nextcloud App Store: Apps für die Volltextsuche
  • 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.

Nextcloud-Einstellungen für die Volltextsuche
Nextcloud-Einstellungen für die 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 ingestattachment 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.

Nextcloud Volltextsuche: Suche nach Datei-Inhalten
Nextcloud Volltextsuche: Suche nach Datei-Inhalten

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

Links

166 Kommentare zu „Volltextsuche in Nextcloud (mit OCR)“

  1. Der Fehler ist wohl auf der Seite von Full Text Search zu suchen:

    pi@raspberrypi:~ $ sudo -u www-data php /home/pi/usbdrive/html/occ files:scan –all
    Starting scan for user 1 out of 2 (roebbe)
    Starting scan for user 2 out of 2 (vatolin)
    +———+——-+————–+
    | Folders | Files | Elapsed time |
    +———+——-+————–+
    | 1266 | 14332 | 00:03:02 |
    +———+——-+————–+

    An dieser Stelle schon mal ganz herzlichen Dank für die Hilfe! Wie geht es nun weiter?

    1. Hi,

      dann handelt es sich wohl echt um ein Problem mit Full Text Search.
      Als nächstes würde ich mal ins Log von Elasticsearch schauen: /var/log/elasticsearch/elasticsearch.log
      Wenn hier nichts zu finden sein sollte, dann würde ich mal im Nextcloud-Forum nachfragen oder einen Issue auf GitHub erstellen.

      Gruß,
      Jan

  2. pi@raspberrypi:~ $ sudo -u www-data php /home/pi/usbdrive/html/occ fulltextsearch:test

    .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 Test.php line 300:

    Search platform (Elasticsearch) down ?

    fulltextsearch:test [–output [OUTPUT]] [-j|–json] [-d|–platform_delay PLATFORM_DELAY]

  3. Ist das die richtige Java-Version?

    pi@raspberrypi:~ $ java -version
    openjdk version „1.8.0_181“
    OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
    OpenJDK Client VM (build 25.181-b13, mixed mode)

    1. Hi,

      die Java-Version ist die richtige. Allerdings sieht es in deinem vorherigen Kommentar so aus, als ob der Elasticsearch Service gar nicht laufen würde.
      Was ergibt „service elasticsearch status“?
      Hast du schon ins Log von Elasticsearch geschaut?

      Gruß,
      Jan

  4. pi@raspberrypi:~ $ service elasticsearch status
    ● elasticsearch.service – LSB: Starts elasticsearch
    Loaded: loaded (/etc/init.d/elasticsearch; generated; vendor preset: enabled)
    Active: active (exited) since Fri 2019-04-19 19:37:18 BST; 3 days ago
    Docs: man:systemd-sysv-generator(8)
    Process: 1684 ExecStop=/etc/init.d/elasticsearch stop (code=exited, status=0/S
    Process: 1717 ExecStart=/etc/init.d/elasticsearch start (code=exited, status=0
    CGroup: /system.slice/elasticsearch.service

    Apr 19 19:37:18 raspberrypi systemd[1]: Starting LSB: Starts elasticsearch…
    Apr 19 19:37:18 raspberrypi systemd[1]: Started LSB: Starts elasticsearch.

    1. Hi,

      das sieht so aus, als ob Elasticsearch nicht laufen würde. Was passiert, wenn du den Service manuell startest („service elasticsearch start“) und danach nochmal den Status überprüfst?
      Wenn es dann läuft, ist Elasticsearch generell mal lauffähig. In diesem Fall ist das Problem wohl nur, dass nach System-Neustart der Service nicht gestartet wird. In diesem Fall sollte ein „update-rc.d elasticsearch defaults“ helfen.
      Wenn der Service auf manuell nicht gestartet werden kann, dann führt nichts mehr daran vorbei, die Logs von Elasticsearch zu analysieren.

      Gruß,
      Jan

  5. Auch nach einem einem Reboot des Raspberry und einem manuellen Start(versuch?) sieht das nicht anders aus:

    pi@raspberrypi:~ $ sudo service elasticsearch start
    pi@raspberrypi:~ $ sudo service elasticsearch status
    ● elasticsearch.service – LSB: Starts elasticsearch
    Loaded: loaded (/etc/init.d/elasticsearch; generated; vendor preset: enabled)
    Active: active (exited) since Wed 2019-04-24 13:07:26 BST; 40s ago
    Docs: man:systemd-sysv-generator(8)
    Process: 556 ExecStart=/etc/init.d/elasticsearch start (code=exited, status=0/SUCCESS)
    CGroup: /system.slice/elasticsearch.service

    Apr 24 13:07:26 raspberrypi systemd[1]: Starting LSB: Starts elasticsearch…
    Apr 24 13:07:26 raspberrypi systemd[1]: Started LSB: Starts elasticsearch.
    pi@raspberrypi:~ $ sudo -u www-data php /home/pi/usbdrive/html/occ fulltextsearch:index

    In Index.php line 380:

    failed platform test.

    fulltextsearch:index [–output [OUTPUT]] [-r|–no-readline] [–] []

    Wo muss ich denn nach den Logs von Elasticsearch suchen, um sie zu finden?

    Gruß. Friedrich

  6. Da ist leider kein Logfile. Das Verzeichnis ist leer:

    pi@raspberrypi:/var/log/elasticsearch $ ls -al
    total 8
    drwxr-xr-x 2 elasticsearch elasticsearch 4096 May 20 2016 .
    drwxr-xr-x 10 root root 4096 Apr 24 13:07 ..

    Gruß. Friedrich

    1. Hi,

      dann würde ich mal generell unter /var/log nach passenden Logfiles suchen. Wenn sich hier nichts findet, dann muss das syslog durchsucht werden.

      Gruß,
      Jan

    1. Hi Friedrich,

      ich denke, dass das schon funktionieren sollte. Wenn in der entsprechenden Paketquelle kein passendes Paket gefunden werden könnte, dann würde er schon beim apt-get update meckern.
      Wenn sich Elasticsearch installieren lässt, dann wurde auch das passende Paket gefunden.
      Was läuft bei dir denn nicht? Lässt sich der Dienst nicht starten?

      Gruß,
      Jan

  7. Hallo Jan,
    mal ein Lob an deine schöne Anleitung, ist echt gut und leicht verständlich!

    Ich habe die Kombi Nextcloud15 – Elasicsearch – Scanbot auch am laufen unf bin zufrieden. (Habe das auf einem NUC 2×2,4GHz/4GB laufen.

    ### RASPBERRY ###
    Noch ein Hinweis/Erfahrung von mir:
    RaspberryPI und „aktuelle Nextcloud mit Volltextsuche“ geht nicht mehr !!!

    a.) es gibt Elasicsearch mit Full text search ab NC14 gut lauffähig
    … benötigt aber mehr als 1GB-Ram, also der RPi geht ins swap! > viel zu langsam so das er Hänger bekommt.

    b.) es gibt Solr mit Nextant bis NC13 gut lauffähig
    … benötigt 128MB und läuft flüssig sebst mit tausenden Docs & Pdfs

    PROBELM:
    NC13 ist nun aus der Wartung! und Nextant ist für NC14 oder Höher nicht mehr als App verfügbar.

    Ich selbst habe als Testsystem auch einen RPi 3 B+, mit NC13, Solr und Nextant (halt nicht mehr im I-Net) am laufen.
    — schade eigentlich —
    Denn ussen den Speichervorteil hat Solr/Nextant auch weitere Vorteile wenn es um Textfiles, also Volltextsuche geht
    – man kann von der Ergebnisliste direkt in das Dokument springen
    – man kann die Ergebnisliste nach Name, Datum und Dateigroesse,

    Info vom Entwickler (was für einen RPi nicht geht! )
    – – –
    Important Note

    Nextant will not be supported in Nextcloud 14. Please consider switching to Full text search !

    https://apps.nextcloud.com/apps/nextant
    – – –

    1. Hallo Kasper,

      danke für den Hinweis mit dem Raspberry. Ich habe den Artikel upgedatet und einen Hinweis hinzugefügt, dass die Einrichtung der Volltextsuchen auf einem Raspi nicht empfehlenswert ist.

      Gruß,
      Jan

  8. Hallo,
    danke für die super Anleitung, nur leider wird bei mir kein Index angelegt und somit funktioniert auch die Volltextsuche nicht.

    root@webserver2:~# sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:test

    .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. ok
    Locking process ok
    Removing test. ok
    Pausing 3 seconds 1 2 3 ok
    Initializing index mapping. ok

    root@webserver2:~# sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index

    Options:
    Memory: 22 MB
    Indexing
    Action: generateIndexFiles
    Provider: Files Account: stefan
    Document:
    Info:
    Title:
    Content size:
    Chunk: 0/0
    Progress: all/0

    Results
    Result: 0/0
    Index:
    Status:
    Message:

    Errors
    Error: 0/0
    Index:
    Exception:
    Message:

    ## x:first result ## c/v:prec/next result ## b:last result
    ## f:first error ## h/j:prec/next error ## d:delete error ## l:last error
    ## q:quit ## p:pause

    Hat jemand eine Idee, woran das liegen könnte.

    Gruß
    Stefan

    1. Hi Stefan,

      eigentlich sieht die Index-Erzeugung gut aus. Das kann aber eine ganze Weile dauern.
      Einen Index-Namen hast du in den Einstellungen der Volltextsuche hinterlegt?
      Ansonsten würde ich mal bei den Entwicklern direkt im GitHub-Repo nachfragen, warum kein Index erstellt wird.

      Edit: Oftmals liegt das Problem daran, dass bei den Verbindungs-Einstellungen für die Full Text Search „https://localhost:9200“ statt „http://localhost:9200“ (HTTPS vs HTTP) angegeben wurde. Kontrolliere doch auch mal diese Einstellung.

      Gruß,
      Jan

      1. Hi Jan,

        da ich den Server neu aufgesetzt hatte, sind nur ein paar Files vorhanden, allerdings wird ja gar kein Index erstellt. Die Einstellung steht korrekt auf http://localhost:9200 ist schon seltsam, zumal es auch keinen Fehler gibt
        Wird das „occ fulltextsearch:index“ geloggt, wenn ja, wo?

        Gruß
        Stefan

        1. Hi Stefan,

          direkt geloggt wird der Prozess nicht. Kannst höchstens mal in das Nextcloud-Log schauen, ob hier Fehlermeldungen zu finden sind.
          Ansonsten wirklich mal einen GitHub-Issue erfassen, der Entwickler reagiert darauf meistens recht schnell und kann dir da sicher weiter helfen.

          Gruß,
          Jan

  9. Hi!

    Hast Du ne Idee, wie lange die Indizierung dauert? Ich habe hier nen VServer mit Quadcore (2,3Ghz) und 24GB Ram. Auf der anderen Seite warten da 1811 PDFs auf Indizierung zusätzlich Word usw….

    Die Indizierung läuft in einem Screen. Falls sie abbricht starte ich Sie neu. Ich bin jetzt knapp ne Woche dran, dem Server ist aber eher langweilig. Multithreading ist da offensichtlich nicht aktiv…

    1. Hi Christian,

      also für knapp 2000 Dateien sollte die Indizierung recht schnell abgeschlossen werden. Ich würde da maximal auf 30 Minuten tippen. Ist natürlich abhängig, was das für Dateien sind – wenn jedes PDF 1000 Seiten hat, kann es auch mal länger dauern.
      Wie sieht der Output der Indizierung aus? Sind hier irgendwelche Fehlermeldungen o.ä zu erkennen?

      Gruß,
      Jan

      1. Hallo Jan!
        Danke für die schnelle Rückmeldung. Ich habe festgestellt, dass er bei einer bestimmten Datei immer wieder abbricht. Also habe ich die mal aus der Cloud rausgenommen. Dann knallte es bei einer anderen Datei, die ich auch rausgenommen habe. Danach den Index Resettet und jetzt neu gestartet.
        Insgesamt sind es 10.000 Dateien, (ca 3000 Audio/Video Dateien) von den 2000 pdfs sind über 400 mindestens 1MB bis 24Mb groß…

        Ich habe versucht, die Dateien, die er nicht verarbeiten will mit dem von dir vorgestellten ocr tool vorzubereiten. Aber das macht es nicht besser.

        Gruß,
        Christian

        1. Hallo Christian,

          hier sieht es für mich so aus, als ob es zu einem Fehler innerhalb der Full Text Search App kommt (oder in der Kommunikation mit Elasticsearch). Werden hier irgendwelche Dateien indiziert, die in „ungewöhnlichen“ Sprachen o.ä. vorliegen?
          Erstelle am besten mal einen Issue auf Github.
          Der Entwickler reagiert für gewöhnlich schnell und kann meistens auch zügig weiter helfen.

          Gruß,
          Jan

  10. Hallo Jan,

    nach einem Update bekomme ich folgenden Fehler:

    Aug 10 23:29:15 HP-Microserver systemd[1]: Started Elasticsearch.
    Aug 10 23:29:15 HP-Microserver elasticsearch[24351]: warning: Falling back to java on path. This behavior is deprecated. Specify JAVA_HOME
    Aug 10 23:29:15 HP-Microserver elasticsearch[24351]: /usr/share/elasticsearch/bin/elasticsearch-env: Zeile 71: /etc/default/elasticsearch: Keine Berechtigung
    Aug 10 23:29:15 HP-Microserver systemd[1]: elasticsearch.service: Main process exited, code=exited, status=1/FAILURE
    Aug 10 23:29:15 HP-Microserver systemd[1]: elasticsearch.service: Unit entered failed state.
    Aug 10 23:29:15 HP-Microserver systemd[1]: elasticsearch.service: Failed with result ‚exit-code‘.
    Aug 10 23:30:01 HP-Microserver CRON[24466]: (root) CMD (if [ -x /etc/munin/plugins/apt_all ]; then /etc/munin/plugins/apt_all update 7200 12 >/dev/null; elif [ -x /etc/munin/plugins/apt ]; then /etc/munin/plugins/apt update 7200 12 >/dev/null; fi)
    Aug 10 23:30:01 HP-Microserver CRON[24467]: (munin) CMD (if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi)
    Aug 10 23:30:01 HP-Microserver CRON[24468]: (www-data) CMD (php -f /var/www/vhosts/nextcloud/cron.php)

    ____________________
    Zum Thema: „/elasticsearch/bin/elasticsearch-env: Zeile 71: /etc/default/elasticsearch: Keine Berechtigung“

    konnte ich nichts finden Berechtigung stehen auf 660 root. Hast du noch eine Idee?

    Gruß
    Frank

  11. Hallo,
    danke für deine klasse Anleitungen
    Habe Nextcloud nach deinen Anleitungen eingerichtet.
    Jetzt versuche ich mich an der Volltextsuche!
    Hatte alles gut geklappt, Keine Fehlermeldung !
    Aber, wenn ich in das Suchfeld einen Suchbegriff eingebe passiert gar nix!!!

    Hier mal

    rayby@nuc-ubuntu:~$ sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:test

    .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. ok
    Locking process ok
    Removing test. ok
    Pausing 3 seconds 1 2 3 ok
    Initializing index mapping. ok
    Indexing generated documents. ok
    Pausing 3 seconds 1 2 3 ok
    Retreiving content from a big index (license). (size: 32386) ok
    Comparing document with source. ok
    Searching basic keywords:
    – ‚test‘ (result: 1, expected: [„simple“]) ok
    – ‚document is a simple test‘ (result: 2, expected: [„simple“,“license“]) ok
    – ‚“document is a test“‚ (result: 0, expected: []) ok
    – ‚“document is a simple test“‚ (result: 1, expected: [„simple“]) ok
    – ‚document is a simple -test‘ (result: 1, expected: [„license“]) ok
    – ‚document is a simple +test‘ (result: 1, expected: [„simple“]) ok
    – ‚-document is a simple test‘ (result: 0, expected: []) ok
    Updating documents access. ok
    Pausing 3 seconds 1 2 3 ok
    Searching with group access rights:
    – ‚license‘ – [] – (result: 0, expected: []) ok
    – ‚license‘ – [„group_1“] – (result: 1, expected: [„license“]) ok
    – ‚license‘ – [„group_1″,“group_2“] – (result: 1, expected: [„license“]) ok
    – ‚license‘ – [„group_3″,“group_2“] – (result: 1, expected: [„license“]) ok
    – ‚license‘ – [„group_3“] – (result: 0, expected: []) ok
    Searching with share rights:
    – ‚license‘ – notuser – (result: 0, expected: []) ok
    – ‚license‘ – user2 – (result: 1, expected: [„license“]) ok
    – ‚license‘ – user3 – (result: 1, expected: [„license“]) ok
    Removing test. ok
    Unlocking process ok

    Was kann das sein?
    Hier ein Screenshot
    https://rayby.spdns.de/nextcloud/s/wyc6HjY27w24eQ8

    Für eure Hilfe wäre ich sehr dankbar

    1. Hallo Rene,

      der erste Index muss manuell über die Kommandozeile erstellt werden:
      sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index

      Hast du dies schon erledigt?

      Gruß,
      Jan

      1. Hallo,
        ich habe mich nach einem Jahr wiede dran gewagt!.

        sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index
        habe ich probiert, es kommt aber dies Meldung

        In StaticNoPingConnectionPool.php line 50:

        No alive nodes found in your cluster

        Danke für lesen !

          1. Hi Jan,
            hmm… gute Frage, keine Ahnung wie kann ich die IPs/Ports prüfen op richtig sind?
            Habe Pi-Hole im Einsatz, kann das blocken?

            Gruß Rainer

          2. Hi Rene,

            der Port wird in der Datei /etc/elasticsearch/elasticsearch.yml konfiguriert (9200 als Standard).
            Ebenso muss dieser bei Nextcloud in den Such-Settings mit in der URL angegeben werden.
            Die URL muss auch mit „http“ (und nicht mit „https“) beginnen.
            Wenn das so wie im Artikel konfiguriert ist, läuft Elasticsearch rein lokal und kann daher auch nicht vom Pi-hole geblockt werden.

            Gruß,
            Jan

  12. Hallo,

    eventuell kann mir jemand helfen, ich erhalte beim Test folgende Fehlermeldung. Wo kann ich bei der Fehlersuche ansetzen?

    .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. ok
    Locking process ok
    Removing test. ok
    Pausing 3 seconds 1 2 3 ok
    Initializing index mapping. fail
    Error detected, unlocking process ok
    In Connection.php line 620:

    {„error“:{„root_cause“:[{„type“:“illegal_argument_exception“,“reason“:“Custom Analyzer [analyzer] failed to find tokenizer under name [DE]“}],“
    type“:“illegal_argument_exception“,“reason“:“Custom Analyzer [analyzer] failed to find tokenizer under name [DE]“},“status“:400}

    Danke & Grüße, Jan

  13. Hallo zusammen

    Erstmal vielen Dank für die vielen nützlichen Tipps auf dieser Seite!!!!
    Vielleicht hat ja jemand hier eine Idee oder Lösung für mein Problem:
    ich nutze Nextcloud zusammen mit der App „Unix user backend“ sowie die Volltextsuche mit Elasticsearch. Das Homeverzeichnis der Linux-User wird via „External Storage“ als Root-Verzeichnis in NC eingebunden. Leider wird für die Linux-User kein Index in Elasticsearch angelegt, es scheint ausschließlich mit NC-Usern zu funktionieren.
    Hat zufällig jemand eine Idee, wie der Index auch für die Linux-User erstellt werden kann?

    Gruß
    Mark

    1. „Fehler“ selbst gefunden. Und wieder einmal heißt es: Erst denken dann fragen!
      Wenn die Authentifizierung über die Sitzungsdaten erfolgt, kann das Ganze natürlich nicht funktionieren.

  14. Hallo zusammen,

    auch von mir vielen Dank für die super Anleitung.
    Allerdings habe ich habe folgendes Problem.
    Ich mounte externe Inhalter per Cifs und binde sie dann per Externe Speicher (lokal) ein. Wenn ich den ersten Index erstelle werden alle Dateien indexiert und kann kann auch nach den Inhalten suchen. Bei neuen Datein die ich hinzufüge funktioniert dies alledings nicht.
    Der Chron Job ist eingerichtet und funktioniert auch.
    Hat jemand eine Idee?

    Lg
    Horst

    1. Hallo Horst,

      hast du nach dem Einbinden des externen Speichers den initialen Index nochmal erstellt (sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index)?
      Ist die Option „in externen Dateien“ in den Einstellungen der Full Text Search App aktiviert?

      Gruß,
      Jan

  15. Hallo Jan,

    Super Anleitung. Das erste mal das bei mir alles funktioniert. Fast alles ;-)

    Index ist erstellt und ich finde auch meine Dateien mit der Suche nach einem Inhalt (hatten alle schon ocr gehabt). Wenn ich nun ein neues pdf ohne vorherigem ocr hinzufüge und mehrere Stunden warte, kann ich leider nicht nach dessem Inhalt suchen. Der Cronjob scheint zu laufen, zumindest steht es so im Admin Bereich, aber scheinbar wird das neue pdf nicht indiziert und nicht mit ocr versehen. Habe alles so gemacht wie in deinem Beitrag hier und die erste Erstellung lief auch. Selbst wenn ich den Index manuell neu erstellen lasse, scheint er nicht das ocr zu machen und ich kann den Inhalt nicht per suche finden. Hast du einen Tipp für mich oder welche Infos benötigst du noch ?

    Vielen Dank schon mal
    Steffen

    1. Hallo Steffen,

      hier würde ich zunächst mal prüfen, ob das OCR durchgelaufen ist. Dazu einfach das PDF in der Cloud öffnen und versuchen, Worte per Copy&Paste zu übernehmen (zu markieren). Wenn das klappt, dann ist das OCR durchgelaufen. Dann müssen wir bei der Full Text Search ansetzen. Wenn nicht, dann klappt schon das OCR nicht.
      Das wäre erst einmal wichtig, damit wir wissen, wo wir ansetzen sollen.

      Gruß,
      Jan

      1. Hallo Jan, danke für die schnelle Antwort.

        Also das OCR ist nicht gelaufen. Ich kann nichts im pdf markieren und kopieren.

        Viele Grüße Steffen

        1. Hi Steffen,

          ok, da ist wohl ein Missverständnis: Die Full Text Search führt nicht selbstständig das OCR aus, die Dokumente müssen vorher OCRt werden.
          Wie du dies bewerkstelligen kannst, habe ich beispielhaft in diesem Artikel gezeigt.

          Gruß,
          Jan

          1. Hi Jan,

            Ach so… ja das habe ich übersehen :-)
            Das heißt das du deine Dokumente scannst und dann von Hand das Script für die Texterkennung startest, um danach die fertigen PDF in Nextcloud lädst.

            Ok. Jetzt habe ich es. Kann ich eigentlich Dateien per Linux command line in ein Verzeichnisses kopieren, so dass diese Datei dann in der Nextcloud verfügbar ist ?! Ich stelle mir vor, dass der Scan Ordner überwacht wird. Kommt ein neues Dokument rein, wird es behandelt mit deinem Script und danach automatisch in den richtigen Nextcloud Ordner kopiert, um dann indiziert zu werden. Oder geht das so leider nicht ?!

            Vielen Dank schon mal für deine Hilfe !

          2. Hi Steffen,

            ja, das ist kein Problem, siehe hier. In dem Artikel bin ich sogar auf das OCRen von Dokumenten mit dieser Strategie eingegangen. Das sollte also auch für dich passen.

            Gruß,
            Jan

          3. Hi Jan,

            jetzt habe ich es geschafft. Ich scanne auf eine SMB Freigabe auf dem Server und per inotify-tools warte ich auf das schließen der neuen Datei. Dann lasse ich das OCR drüber laufen und da PDF ins richtige Verzeihnis kopieren. Dies Verzeichnis ist als Extern in der Nextcloud drin. Bei der Volltextsuche habe ich die Externen mit Inhalt mit drin. Wenn ich nun den Cronjob abwarte zeigt er mir in der Suche an das er 1 Dokument gefunden hat, aber er zeigt das Dokument selbst nicht an (zum drauf klicken).
            Wenn ich das Dokument aus dem Externen Ordner in einen lokalen kopiere und den nächsten Cronjob abwarte, dann zeigt er 2 gefundene Dokumente an, aber nur das eine im lokalen Ordner zum anklicken. Das ist nicht so schlimm, da ich sie irgendwann alle auf das lokale System koperie, aber hast du eine Idee warum er es zwar findet, aber nich in den Suchergebnissen anzeigt ?

            Vielen Dank
            Steffen

          4. Hallo Steffen,

            eigentlich sollte er auch die Dateien auf externen Speicherpunkten finden und indizieren.
            Was passiert, wenn du die Volltextsuche per OCC-Befehl nochmal manuell startest?
            Evtl. hilft es auch, den Index nochmal komplett zu löschen und neu erstellen zu lassen.

            Gruß,
            Jan

  16. Hallo Jan,
    kannst du mir bei folgendem Fehler weiterhelfen?

    root@vm07-ownc /var/www/html/nextcloud # sudo -u www-data php ./occ fulltextsearch:document:platform –content files 1

    In Connection.php line 619:

    {„error“:{„root_cause“:[{„type“:“index_not_found_exception“,“reason“:“no such index [vm07-ownc]“,“resource.type“:“index_expression“,“resource.id“:“vm07-
    ownc“,“index_uuid“:“_na_“,“index“:“vm07-ownc“}],“type“:“index_not_found_exception“,“reason“:“no such index [vm07-ownc]“,“resource.type“:“index_expressio
    n“,“resource.id“:“vm07-ownc“,“index_uuid“:“_na_“,“index“:“vm07-ownc“},“status“:404}

    fulltextsearch:document:platform [–output [OUTPUT]] [-c|–content] [–]

    Habe alles nach deiner Anleitung installiert.

    1. Hi Patrick,

      hast du den initialen Index mittels
      sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index
      erstellt? Sieht nämlich so aus, als wenn er gar keinen Index aufgebaut hätte.

      Gruß,
      Jan

  17. Hi, vielen Dank für die Anleitung, die ist wirklich gut. Die Volltextsuche tut bei mir auch prima, allerdings tut das OCR leider nicht. Ich habe ein bisschen ein anderes Setup, nämlich Nextcloud per Snap installiert, aber die Anleitung hat trotzdem gut funktioniert. Aber darum sieht mein occ Befehl auch etwas anders aus. Ich vermute, dass das nicht funktionierende OCR mit dem Fehler beim Index zu tun hat. Ich konnte sonst aber nichts genaueres dazu finden. Hast du vielleicht nen Tipp für mich?

    jan@vidar:~$ sudo nextcloud.occ fulltextsearch:index -r
    [sudo] Passwort für jan:

    Options: {„_no-readline“:true}
    Memory: 24 MB
    ┌─ Indexing ────
    │ Action: compareWithCurrentIndex
    │ Provider: Files Account: scanner
    │ Document: 724
    │ Info: httpd/unix-directory
    │ Title:
    │ Content size: 0
    │ Chunk: 74/74
    │ Progress: all/1
    └──
    ┌─ Results ────
    │ Result: 2/2
    │ Index: files:724
    │ Status: ok
    │ Message: {„_index“:“my_cloud_index“,“_type“:“standard“,“_id“:“files:724″,“_version“:1,
    │ „result“:“noop“,“_shards“:{„total“:0,“successful“:0,“failed“:0}}

    └──
    ┌─ Errors ────
    │ Error: 9/9
    │ Index: files:806
    │ Exception: Elasticsearch\Common\Exceptions\ServerErrorResponseException
    │ Message: java.lang.IllegalArgumentException: ElasticsearchParseException[Error parsing
    │ document in field [content]]; nested: TikaException[TIKA-198: Illegal IOException from
    │ org.apache.tika.parser.pdf.PDFParser@694e4f34]; nested: IOException[Missing root objec
    └──

    1. Hallo Jan,

      ich fürchte, ich bin damit etwas überfragt, da es sich um eine Exception in der Full Text Search handelt. Am besten einfach mal einen Issue im entsprechenden Repository aufmachen. Die Entwickler werden dir da sicherlich schneller helfen können als ich.

      Gruß,
      Jan

      1. Hi,

        ich hab mittlerweile in den Kommentaren was gefunden. Mir war nach deiner Anleitung oben nicht klar, dass das OCR dann noch gar nicht ausgeführt wird (hatte mich zwar schon gefragt, wie das denn gehen soll, aber nu ja…). Hab jetzt mal den entsprechenden Artikel von dir angeguckt und es funktioniert auch grundsätzlich. nur dein Skript tut bei mir noch nicht, aber das gucke ich mir noch in Ruhe an und melde mich in dem Artikel vielleicht nochmal. Ich vermute mittlerweile, dass die Fehlermeldung vom Ingest-plugin kommt, dass mit den PDFs einfach ohne OCR nichts anfange kann. Danke auf jeden Fall für die Antwort :)

      2. So, ich hab jetzt auch das OCR am Laufen mit dem Script von dir. Vielen Dank, echt sehr, sehr gute Anleitungen! Einzig der Hinweis, dass mit der Anleitung oben OCR selbst noch nicht läuft war etwas versteckt. Nochmal vielen Dank!

  18. Hallo Jan, guter Artikel, wirklich sehr ausführlich und sehr hilfreich!

    Allerdings fände ich einen Hinweis angebracht, dass Nextcloud mit Elasticsearch keine Nur-Text-Dateien indizieren kann. Klingt absurd – und ist es auch. Es gibt einen seit einem Jahr offenen Bugreport aber es scheint sich keiner darum zu kümmern – wohl weil man bei Nextcloud der Meinung ist, es liegt an Elasticsearch. Das macht die Volltextsuche m.E. nutzlos.

  19. Christian Struck

    Moin Jan,

    ich habe folgendes Problem. Ich habe Nextcloud mittels Nextcloudpi in Docker installiert. Elasticsearch habe ich entsprechend Deiner Anleitung installiert. Der Dienst läuft.

    Leider komme ich hier jedoch nicht weiter, da ich nicht weiß wie ich Elasticsearch/Tesseract dazu bekomme nunmehr in Nextcloud zu suchen.

    Ich befürchte, dass Nextcloud (Docker) und Elasticsearch (kein Docker) keine sinnvolle Variante ist. Vielleich weist Du ja einen Rat.

    Gruß

    Christian

  20. Christian Struck

    Moin Jan,

    vielen Dank für Deine Antwort. Diese Anleitung hatte ich auch schon gefunden, jedoch ist dort Tesseract leider nicht implementiert. Dieses Modul benötige ich jedoch händeringend um meine große Anzahl an Datein und Fotos zu verwalten.

    Klasse wäre es, wenn Du doch vielleicht die Zeit aufbringen könntest und Dein Tutorial noch einmal aktualsierst und vielleich ergänzt als Docker Image zur Verfügung stellst.

    Viele Grüße

    Christian

    1. Hi Christian,

      hast du diese Docker-Variante schon ausprobiert? Funktioniert diese (bis auf Tesseract)?
      Wenn ja, dann kannst du dir ja einfach ein eigenes Dockerfile auf Basis des o.g. Repos erstellen. In diesem Dockerfile installierst du dann zusätzlich Tesseract – dies muss ja nur installiert und nicht konfiguriert werden.

      Gruß,
      Jan

  21. Hallo,

    danke für die Anleitung – hab auch alles hinbekommen nur mit dem occ geht es nicht weiter. Dies habe ich in der Nextcloud installiert wenn ich nun occ aufrufen und den Befehl
    sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index

    eingebe kommt eine Fehlermeldung ;Command „sudo“ is not defined.

    was ist falsch??

    Nextcloud Versin 19 Stable
    Ubuntu: die bei Dir verlinkt ist.

    DANKE!!!

          1. Hi Jürgen,

            die Frage sollte eher lauten, wo hast du es zuvor ausprobiert.
            Das „normale Terminal“ ist auf jeden Fall richtig.

            Gruß,
            Jan

  22. Hi Jan,

    super anleitungen die hier gepostet hast ich bekomme nur einen Fehler beim erstellen vom Index

    Error opening data file /usr/share/tesseract-ocr/4.00/tessdata/eng_deu.traineddata
    Please make sure the TESSDATA_PREFIX environment variable is set to your „tessdata“ directory.
    Failed loading language ‚eng_deu‘
    Tesseract couldn’t load any languages!
    Could not initialize tesseract.

    Kannst du mir weiterhelfen wie ich den Index zum laufen bekomme?
    Ich habe bisher alles über deine Anleitung OCR Linux mit ocrmyfiles am laufen.

      1. Hi Jan,

        so wie in der Anleitung über den Befehl
        apt-get install tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng

        wenn ich den Befehl nochmal ausführe kommt das schon die neueste Version 4.00git24… installiert ist.
        Gruß
        Michael

        1. Ich glaub ich habe die Lösung gefunden
          Als su den Variable setzen
          export TESSDATA_PREFIX=“/usr/share/tesseract-ocr/4.00/tessdata“
          welche man dann mit ls TESSDATA_PREFIX gegenchecken kann
          Jetzt baut er den Index auf.

          1. Hi Michael,

            OK, danke für den Hinweis. Auf meinen Systemen war dies noch nie notwendig. Ist an deinem System irgend etwas speziell?

            Gruß,
            Jan

          2. Hallo Jan,

            eigentlich nicht Ubuntu 18.04 LTS mit Nextcloud.
            Ich habe zuvor deine andere Anleitung mit dem Input und Output Verzeichnis und myocr durchgeführt und jetzt die.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert