Zum Hauptinhalt springen

OCR

In diesem Abschnitt wird die OCR-Konfiguration (Optical Character Recognition) in Sync-in beschrieben, um Text aus in PDFs enthaltenen Bildern zu extrahieren und ihn in die Volltextsuche zu integrieren.

Die Konfiguration erfolgt in environment.yaml, siehe Abschnitt OCR.


Voraussetzungen​

  • Die Inhaltsindizierung muss global aktiviert sein: applications.files.contentIndexing.enabled (standardmäßig true).
  • Die Indizierung muss im entsprechenden Bereich aktiviert sein (standardmäßig aktiviert).
  • Im Offline-Modus (offline: true) müssen Sprachdateien lokal vorhanden und vom Server lesbar sein.

Konfiguration​

Minimalbeispiel (Online-Modus, automatischer Download von Sprachen bei Bedarf):

applications:
files:
contentIndexing:
enabled: true
ocr:
enabled: true
languages: [ eng,fra ]
offline: false
Info

Im Online-Modus werden Sprachdateien im Verzeichnis server/applications/files/assets/ocr-languages gespeichert. Der Pfad kann variieren, je nachdem, ob die Installation über NPM oder Docker Compose erfolgte.

Offline-Beispiel mit einem dedizierten lokalen Verzeichnis:

applications:
files:
contentIndexing:
enabled: true
ocr:
enabled: true
languages: [ eng,fra ]
offline: true
languagesPath: /app/ocr-lang

Offline-Modus​

Bei offline: true müssen Sprachdateien heruntergeladen und lokal bereitgestellt werden.

Sync-in verwendet die Sprachdaten von Tesseract.js.

URL-Format:

https://cdn.jsdelivr.net/npm/@tesseract.js-data/<lang>@1.0.0/4.0.0_best_int/<lang>.traineddata.gz

Beispiel für Französisch und Englisch:

mkdir -p /app/ocr-lang
curl -L -o /app/ocr-lang/fra.traineddata.gz \
https://cdn.jsdelivr.net/npm/@tesseract.js-data/fra@1.0.0/4.0.0_best_int/fra.traineddata.gz
curl -L -o /app/ocr-lang/eng.traineddata.gz \
https://cdn.jsdelivr.net/npm/@tesseract.js-data/eng@1.0.0/4.0.0_best_int/eng.traineddata.gz

Entsprechende Konfiguration:

applications:
files:
contentIndexing:
ocr:
languages: [ fra, eng ]
offline: true
languagesPath: /app/ocr-lang
Info

Dateinamen müssen mit den in languages definierten Codes übereinstimmen (Beispiel: fra.traineddata.gz für fra).


Bewährte Vorgehensweisen​

  • Beschränken Sie languages auf die tatsächlich benötigten Sprachen, um die Indizierungszeit zu verkürzen.
  • Aktivieren Sie offline: true in isolierten Umgebungen oder Umgebungen ohne Internetzugang.