Module d'indexation de fichiers - Modification / suppression
Bonjour,
Nos fichiers sont indexés grâce au module d'indexation textuelle de Jalios.
Cependant, les références ne sont pas supprimées lors de la suppression ou de la modification d'un fichier: la recherche sur un terme ayant disparu d'un fichier renvoie toujours la référence au fichier.
Le problème est-il connu? Comment le corriger?
Merci d'avance.
Re: Module d'indexation de fichiers - Modification / suppression
Bonjour,
Pouvez-vous svp envoyer au support@jalios.com des copies écrans de votre mode opératoire.
Merci.
Re: Module d'indexation de fichiers - Modification / suppression
Bonjour,
il est difficile de faire des copies d'écran car tout se fait dans une classe java!
Voici une description détaillée de ce que nous faisons :
- Des fichiers PDF sont insérés dans JCMS par des classes java qui se chargent de faire la copie du fichier réel ainsi que de créer le FileDocument associé dans les publications de JCMS. Cela fonctionne et les documents PDF sont bien indexés pour le moteur de recherche textuelle.
- Lorsqu'un fichier PDF doit être mis à jour, il arrive (avec le même nom de fichier) pour être de nouveau importé et inséré par notre classe java. Le traitement de notre classe est le suivant :
- Par une query, on trouve qu'il existe déjà un FileDocument associé à un fichier du même nom que celui qu'on s'apprête à importer
- On supprime ce FileDocument en utilisant la méthode performDelete
- On copie le nouveau fichier dans le répertoire upload et on crée un nouveau FileDocument associé.
Le résultat est que ce nouveau fichier est bel et bien indexé, mais que l'indexation du fichier précédent n'est en général pas effacée... (elle n'est effacée que si le fichier précédent avait été importé un mois différent de la nouvelle version. En effet, comme les deux versions du fichier portent le même nom, le moteur d'indexation ne peut réaliser que l'ancien fichier est supprimé que dans le cas où les chemins d'accès à ce fichier sont différents. Cette situation se produit seulement si les deux versions de fichier sont importées au cours de mois différents).
Est-il possible de forcer, par un appel d'une méthode en java, l'effacement de l'indexation d'un fichier?
Re: Module d'indexation de fichiers - Modification / suppression
Bonjour,
Le problème vient du nommage des fichiers. Lorsque vous créez le nouveau file document, il faut utiliser la méthode suivante :
String[] dirAndFileName = FileDocument.getNewDocumentDirectoryAndName(originalFileName, contentType);
String targetFileDir = dirAndFileName[0];
String targetFileName = dirAndFileName[1];
File file = new File(channel.getRealPath(targetFileDir + targetFileName));
Et vous devez copier le fichier que vous voulez encapsuler dans un FileDocument dans ce fichier.
Une fois le fichier créé, sur l'objet FileDocument à créer, vous devez positionner les bons attributs :
fileDocument.setOriginalFileName(originalFileName);
fileDocument.setFileName(targetFileName);
...
De cette manière, vous n'aurez pas de collusions entre les différents FileDocument. Pour autant, les utilisateurs récupèrerons correctement les fichiers (avec le bon nom).
Re: Module d'indexation de fichiers - Modification / suppression
Cela résout effectivement le problème de collusion, merci.
Par contre, les utilisateurs voient le nom réel des fichiers sur le disque, et pas le nom que l'on souhaite.