Fonctionnalité #15958
fermé[Fulltext] Indexation et recherche fulltext
Description
En tant que service producteur, je veux indexer le contenu texte des documents archivés afin de pouvoir les rechercher sur l'intégralité des termes.
Détail
La fonction d'indexation fulltext a été intégrée en V1 en utilisant un moteur externe Lucene PHP.
Cette implémentation pose plusieurs problèmes : performances, scalabilité car il utilise des fichiers à plat non chargés en mémoire
La stratégie proposée est d'utiliser les capacités d'indexation de PostGreSQL et le moteur actuellement utilisé pour les métadonnées.
Il faut pouvoir mettre à jour le texte dans le référentiel à partir du texte transmis au versement, en plus des métadonnées descriptives déjà indexées, et assurer une recherche performante et fiable.
note: l'extraction du texte des documents lorsque celui-ci n'est pas transmis, par une procédure appliquée au versement ou lors de la conservation, fait l'objet d'une autre demande
Back-end
Lors du versement, le contrôleur de description reçoit l'archive à enregistrer, et réalise les opération suivantes :
- initialisation d'une propriété "text" pour l'objet description
- ajout de l'archiveName, originatorArchiveId, originatingDate et des métadonnées du profil au contenu fulltext à indexer
- enregistrement de la description
Il faut pouvoir recevoir un contenu "text" pour le texte à indexer en plus des métadonnées
Lors de la recherche... la fonction de recherche utilise déjà l'indexation fulltext sur cette propriété.
Lors de la mise à jour des métadonnées, il faut pouvoir réindexer avec les nouvelles valeurs de métadonnées, sans modifier le contenu texte issu de la ressource