Bug #15488
ferméLes entités HTML des contenus WYSIWYG ne sont pas décodées lors de l'indexation Lucene
0%
Description
Contexte
Les contenus WYSIWYG des publications Kmelia sont stockés dans des fichiers *wysiwyg_<lang>.txt. Ces fichiers contiennent du HTML et les caractères accentués sont enregistrés sous forme d'entités HTML (é, à, etc.).
Exemple de contenu réel d'un fichier WYSIWYG :
<p>fusée<br />
fusee<br />
ergothérapeute<br />
exilé<br />
démission<br />
restauré</p>
Lors de l'indexation, certaines recherches sur des mots accentués ne renvoient pas les publications attendues.
Reproduction
Créer une publication Kmelia contenant les mots suivants :
fusée
fusee
ergothérapeute
exilé
démission
restauré
Réindexer les contenus.
Effectuer les recherches :
fusée
fusee
ergothérapeute
ergotherapeute
démission
demission
Le terme eacute apparaît dans l'index, ce qui indique que le HTML n'a pas été interprété avant analyse.
TikaParser crée actuellement un Metadata vide avant l'appel à Tika, ce qui laisse Tika détecter le type à partir de l'extension .txt.
Le contenu est alors interprété comme du texte brut au lieu de HTML.
Cause
Le MIME type (text/html) présent dans FileDescription n'est pas propagé jusqu'à TikaParser.
Mis à jour par Sebastien Vuillet il y a 7 jours
- Statut changé de New à In progress...
Mis à jour par Sebastien Vuillet il y a 7 jours
- Statut changé de In progress... à Resolved
- Assigné à changé de Sebastien Vuillet à Miguel Moquillon
Mis à jour par Miguel Moquillon il y a 7 jours
- Lié à Bug #15370: Recherche de terme contenant des caractères spéciaux provenant du WYSIWYG ajouté
Mis à jour par Miguel Moquillon il y a 7 jours
- Statut changé de Resolved à Integration in progress...
Ce bug a été déjà corrigé mais au niveau du contenu WYSIWYG produit par CKEditor. Cf. https://tracker.silverpeas.org/issues/15370
Il s'avère que le client CD24 n'était pas à jour dans sa version de Silverpeas, raison pour laquelle il a rencontré encore ce bug.
La correction proposée ici s'attaque directement au niveau du moteur d'indexation qui présentait aussi un soucis : il ne prenait pas en compte la nature HTML du contenu proposé à l'indexation. Désormais, le MIME type du contenu est passé en paramètre, ce qui permet à Lucene d'adapter son parsing à celui-ci. Ainsi, pour du contenu HTML, tout caractère accentué encodé sous forme d'entité HTML sera pris en compte comme caractère accentué en UTF-8 (l'encodage par défaut de la plate-forme).
Mis à jour par Miguel Moquillon il y a 7 jours
- Statut changé de Integration in progress... à Closed
Intégrée dans les branches 6.4.x et master