Aller au contenu

Recherche

Pour les règles métiers, voir le document dédié.

Indexation

La commande cd api && make elastic-index permet de réindexer tous les dossiers et documents de l'application dans Elasticsearch (attention cela peut prendre beaucoup de temps sur les grosses bases de données.)

Technique

L'application fournit des lignes de commande qui seront utilisées dans la vie du projet :

  • bin/console search:create-indices permet de créer les index dans elasticsearch s'ils n'existent pas encore.
  • bin/console search:update-mapping permet de mettre à jour le mapping des index, s'ils existent.
  • bin/console search:index-all va reprendre tous les documents créés dans la GED et les re-indexer dans elasticsearch pour être sûr que les données sont à jour, cela peut être utile à la suite d'une panne sur elasticsearch.

L'application fournie 2 autres commandes qui ne sont à utiliser qu'en environnement de dev :

  • api/bin/console search:drop-indices va supprimer les index elasticsearch et toutes les données associées, à utiliser pour repartir d'un environnement propre.
  • api/bin/console search permet d'effectuer une recherche sans avoir à utiliser l'app front pour faire des tests et vérifier les résultats.

OCR

La reconnaissance de caractères utilise :

  • imagemagick : pour transformer un document binaire en image au format JPG,
  • tesseract : pour reconnaitre les caractères dans l'image JPG et les stocker dans un fichier TXT.

Utiliser la commande suivante pour transformer le contenu binaire en texte, en précisant l'uuid du document :

$ bin/console ocr:read-binary-content 5b3e542d-154c-46e0-8410-6b9ee213b5f0

Un nouveau fichier texte est alors créé dans /var/data/{document-uuid}/, qui contient donc deux fichiers :

  • 1.ext : le contenu binaire (PDF, JPG, PNG, etc.),
  • 1.txt : le contenu text après OCR du contenu binaire.

Ressources utiles :