2010-01-19 7 views
1

J'ai une collection de fichiers qui ont été ajoutés à une collection de vérité. Le nom de fichier, avec le chemin complet, a été utilisé comme clé.Déplacer des fichiers dans une collection verity

Je voudrais déplacer l'emplacement des fichiers sur le disque, mais je crains que je me retrouve avec des entrées en double (quand je mets à jour le même fichier, le chemin vers le fichier sera différent, donc je vais avoir une entrée pour l'ancien fichier et une entrée pour le nouveau).

Je n'étais pas impliqué dans la configuration initiale de l'application, et je ne connais pas grand-chose à la vérité ou à la coldfusion (le reste de l'application est en PHP). Quelqu'un peut-il suggérer comment je peux exécuter une sorte de regex remplacer sur chaque clé dans une collection de vérité, ou éventuellement suggérer une autre approche?

+0

Bien que pas vraiment une réponse, une enquête plus approfondie de Solr montre que c'est loin, beaucoup plus rapide que notre approche actuelle - réindexation n'est donc plus un problème :) Pourquoi quelqu'un utilise Verity? –

Répondre

3

Je vous recommande de créer une nouvelle collection, de vous adapter à vos nouvelles spécifications (au moins un nouveau chemin dans votre cas) et d'y accéder dans le code de l'application (remplacez le nom de collection dans cfindex/cfsearch). Après s'être assuré que cela fonctionne correctement, vous êtes libre de supprimer l'ancien.

Si vous ne pouvez pas créer de collection pour une raison quelconque, vous pouvez simplement purger la collection, changer le chemin et le réindexer.

Veuillez noter que vous pouvez faire tout cela directement à partir de l'application (peut-être un script temporaire) en utilisant la balise cfcollection, et en utilisant CF Admin (voir Verity Collections dans le menu) aussi.

+0

La purge et la réindexation est une option que j'ai envisagée, mais le processus de réindexation de milliers de documents prend du temps (nous avons des documents pptx/docx/xls, qui ne sont pas supportés, donc ils sont convertis en PDF auparavant). J'ai reconstruit l'un des index une fois et cela a pris plusieurs jours. Je peux le faire en dernier recours, mais ce que j'aimerais vraiment, c'est quelque chose qui mettrait juste à jour toutes les clés, par exemple. dans SQL quelque chose comme 'mettre à jour collection set id = remplacer (id,' oldlocation ',' newlocation ')' - cela éviterait de réindexer. –

+0

Eh bien, c'est une clarification très importante sur la taille de la collection - vous devriez l'avoir mentionné dans votre question. Désolé, mais mes connaissances ne permettent pas d'y parvenir, même en utilisant des moyens délicats comme l'accès direct à VerityService * verityService = CreateObject ("java", "coldfusion.server.ServiceFactory"). GetVerityService() * - cet onject montre rien qui puisse aider. – Sergii

+0

Merci pour votre aide :) En attendant, je vais laisser les choses comme elles sont; à moyen terme, nous cherchons à migrer vers Solr de toute façon, ce qui nécessitera une réindexation, alors je vais m'inquiéter à ce sujet. –