Introduction Glossaire Guide utilisateur Guide administrateur fonctionnel Guide administrateur technique Prérequis pour Maarch Courrier Installation Breaking Change Exploitation Monter un disque partagé avec Windows sur le serveur Maarch Courrier Montage de disque Connexion aux scanners de bureau Connexion LDAP Envoi de mails Addin outlook Personnalisation des libellés Installation du docker OnlyOffice Installation du docker Collabora Online Installation du docker Grafana Paramétrage de l'édition des documents Edition de documents avec java Déploiement du Maarch2Maarch Filtrage des annotations Interconnexion avec un parapheur distant Archivage des courriers Envoyer des plis postaux vers Maileva Connexion via Shibboleth Mécanisme de temps d'inactivité Compatibilité outils externes Recommandations de sauvegarde Purge des fichiers de logs et répertoires temporaires Planification des tâches Purge des courriers après votre recette Préciser au reverse proxy le protocole https Matrice des flux Créer un service pour fermer les connexions persistantes de postgres Paramétrage de la langue serveur Les étapes clés pour déployer une nouvelle instance Connexion avec Keycloak Connexion avec Azure AD Connexion avec CAS Paramétrage d'un relay smtp via postfix Prise en compte des formulaires PDF Édition avec Office 365 via Sharepoint Online Script d’indexation plein texte Lecture automatique de document (LAD) Paramétrage des adresses e-mail externes Mise en oeuvre de docker Architecture technique

Filtrage des annotations

Il existe dans Maarch Courrier des outils SQL pour le traitement des annotations contenant des termes apparaissant dans une liste noire.

Il s’agit, dans un premier temps, de lister dans une table SQL les éléments de la liste noire, et dans un second temps de récupérer les annotations concernées, qui pourront être traités par l’administrateur technique de la base de données, par exemple pour suppression des annotations.

Peuplement de la liste noire

Les éléments de la liste noire peuvent être de trois natures : mot unique, groupe de mots, préfixe de mot.

Pour ajouter en liste noire un mot unique (ex. : « éléphant ») ou un groupe de mots (ex. : « pomme de pin »), l’injection SQL est élémentaire :

INSERT INTO blacklist (term) VALUES ('éléphant');
INSERT INTO blacklist (term) VALUES ('pomme de pin');

Pour ajouter en liste noire un préfixe de mot (ex. : « téléo- »), il faut remplacer l’habituel tiret par \w* :

INSERT INTO blacklist (term) VALUES ('téléo\w*');

Retirer un élément de la liste noire se fait également simplement :

DELETE FROM blacklist WHERE term = 'éléphant';

Traitement de la liste noire

La vue SQL bad_notes est un miroir de la table notes référençant uniquement les annotations concernée par la vue blacklist.

SELECT * FROM bad_notes;
 id | identifier | user_id |       creation_date        |                     note_text                      
----+------------+---------+----------------------------+----------------------------------------------------
 79 |        644 |      19 | 2022-07-19 15:56:24.065955 | Je vois un énorme éléphant !
 80 |        644 |      13 | 2022-07-19 15:57:23.729681 | Je me soucie de la téléonomie de cette discipline.
 81 |        639 |      19 | 2022-07-19 15:57:59.088378 | Pomme de pin bloquant la route.
(3 rows)

Attention : selon le nombre d’annotations et la longueur de la liste noire, cette requête peut être longue à l’exécution, puisque chaque annotation est comparée à chaque élément de la liste noire.

On peut voir ici que la recherche est insensible à la casse (« Pomme de pin » vs. « pomme de pin »), et que les courriers et les utilisateurs associés au annotations sont clairement identifiables : colonne identifier pour les res_id (numéro GED) des courriers, et colonne user_id pour les identifiants numériques des utilisateurs.

Il est par exemple possible de supprimer toutes les annotations détectées avec :

DELETE FROM notes WHERE id in (SELECT id FROM bad_notes);

results matching ""

    No results matching ""