Aperçu
Fess extrait le texte des documents avec Apache Tika. L’analyseur OCR Tesseract de Tika est fourni avec Fess. Une fois activé, Fess reconnaît le texte des images et des PDF numérisés et le rend consultable par la recherche.
L’OCR s’exécute lorsque les deux conditions suivantes sont réunies :
La commande
tesseractest installée sur l’hôte où s’exécute le processus du crawler de FessL’OCR est activé dans Fess
L’OCR est désactivé par défaut. Si tesseract n’est pas installé, Fess ignore l’OCR. Aucune erreur ne se produit.
Éléments concernés par l’OCR
Lorsque l’OCR est activé, il s’applique aux éléments suivants :
Les fichiers image (PNG, JPEG, TIFF, GIF, BMP, etc.)
Les images intégrées dans des documents traités par Tika (par exemple, les fichiers Office)
Les PDF dont la couche de texte est vide (PDF numérisés)
Traitement des PDF numérisés
Fess extrait normalement le texte des PDF avec PDFBox. Lorsque l’OCR est activé et que PDFBox n’obtient aucun texte d’un PDF, Fess extrait de nouveau le PDF via Tika. Tika convertit les pages en images et leur applique l’OCR.
Note
Les PDF qui contiennent déjà du texte ne sont pas traités par l’OCR. Les PDF mixtes, dont seules certaines pages sont des images numérisées, ne sont pas couverts.
Installation de Tesseract
Installez Tesseract sur l’hôte où s’exécute Fess. Pour reconnaître le texte japonais, vous avez aussi besoin des données d’entraînement japonaises (traineddata).
Debian / Ubuntu
RHEL / Rocky Linux / AlmaLinux (activez d’abord EPEL)
Pour vérifier les langues installées, exécutez
Activation de l’OCR
Définissez les propriétés suivantes dans fess_config.properties.
Paquet ZIP :
app/WEB-INF/classes/fess_config.propertiesPaquet RPM/DEB :
/etc/fess/fess_config.properties
| Propriété | Par défaut | Description |
|---|---|---|
crawler.document.ocr.enabled | false | Définissez true pour activer l’OCR. |
crawler.document.ocr.language | eng | Langue(s) de Tesseract. Reliez plusieurs langues avec + (par exemple, jpn+eng). Les données d’entraînement (traineddata) correspondantes doivent être installées. |
crawler.document.ocr.timeout | 120 | Délai d’expiration d’une exécution de Tesseract (une image ou une page de PDF), en secondes. |
Vous pouvez aussi définir ces propriétés comme propriétés système de la JVM. Par exemple, indiquez-les dans FESS_JAVA_OPTS. C’est pratique dans les environnements Docker.
Note
Redémarrez Fess après avoir modifié ces paramètres.
Utiliser l’OCR avec Docker
Pour utiliser l’OCR dans un environnement Docker, ajoutez Tesseract à l’image de Fess. Construisez une image avec Tesseract à l’aide de compose/tesseract/Dockerfile de docker-fess.
Exemple de compose/tesseract/Dockerfile
Dans compose/compose.yaml, remplacez la ligne image: par build: ./tesseract et activez la ligne FESS_JAVA_OPTS. Cela fonctionne comme build: ./playwright.
Après la modification, reconstruisez l’image et démarrez les conteneurs
Note
Si vous utilisez une image de base qui n’est pas Alpine, comme -noble ou -al2023, ajoutez Tesseract avec le gestionnaire de paquets de cette distribution à la place de apk.
Consultez Installation avec Docker (Détails) pour plus de détails.
Paramètres par configuration de crawl
Si vous indiquez config.tika.tesseract.config dans les « Paramètres de configuration » d’une configuration de crawl, vous pouvez remplacer les paramètres d’OCR pour cette seule configuration de crawl.
tesseract.properties est un nom de ressource du classpath, et non un chemin du système de fichiers. Placez le fichier dans le répertoire de configuration de Fess, qui se trouve dans le classpath du crawler.
Paquet ZIP :
app/WEB-INF/classes/Paquet RPM/DEB :
/etc/fess/
Dans tesseract.properties, écrivez des propriétés de TesseractOCRConfig de Tika. Seules les clés simples, telles que language et timeoutSeconds, sont appliquées de manière fiable.
Pour cette configuration de crawl, ces valeurs ont priorité sur les paramètres globaux décrits ci-dessus.
Remarques d’exploitation
L’OCR sollicite fortement le processeur et ralentit considérablement le crawl. Envisagez de réduire le nombre de threads du crawler ou de n’activer l’OCR que pour les configurations de crawl qui en ont besoin.
Pour les nouvelles configurations de crawl Web, le motif d’URL exclues par défaut exclut les URL d’images (jpg, png, gif, etc.). Pour explorer les images d’un site Web, supprimez-les de « URL exclues du crawl ». Le crawl de fichiers inclut les images.
Les limites de taille du crawler s’appliquent également. Pour la limite de taille d’indexation par type de fichier (par défaut : 10 Mo), consultez Configuration du robot d’indexation : exploration Web, serveur de fichiers et bases de données.
La précision de l’OCR dépend de la qualité de la numérisation. L’écriture manuscrite n’est en général pas bien reconnue.
Les fichiers indexés avant l’activation de l’OCR ne sont pas traités par l’OCR tels quels. Avec le crawl incrémental activé (« Vérifier la dernière modification » dans Général), un fichier dont la date de modification n’a pas changé n’est pas récupéré à nouveau lors d’un nouveau crawl. Pour appliquer l’OCR à ces fichiers, désactivez « Vérifier la dernière modification » le temps d’un crawl, ou supprimez les documents de l’index puis relancez le crawl.
Remarques sur la mise à niveau
Jusqu’à la version 15.8, le fichier tika.xml fourni excluait org.apache.tika.parser.ocr.TesseractOCRParser. Depuis la version 15.9, le fichier tika.xml fourni n’exclut plus cet analyseur.
Si vous avez conservé un fichier tika.xml personnalisé, supprimez la ligne suivante :
Si cette ligne reste en place, l’OCR reste désactivé même avec crawler.document.ocr.enabled=true.
L’emplacement de tika.xml est le suivant :
Paquet ZIP :
app/WEB-INF/conf/tika.xmlPaquet RPM/DEB :
/etc/fess/tika.xml
Vérification de l’OCR
Créez une configuration de crawl de fichiers pour un dossier contenant une image numérisée (une image comportant du texte).
Lancez le crawl.
Recherchez un mot qui figure dans l’image et vérifiez que l’image apparaît dans les résultats de recherche.
Si l’image n’apparaît pas, vérifiez les points suivants :
tesseract --list-langsaffiche la langue utiliséecrawler.document.ocr.enabledvauttruetika.xmln’exclut plusTesseractOCRParserLe
fess-crawler.logdu crawl afficheOCR is enabled(l’avertissementTesseract OCR is not availablesignifie que Fess ne peut pas utiliser Tesseract)