2010-01-19 21 views
1

我有一个已添加到真实集合中的文件集合。具有完整路径的文件名已被用作密钥。在真实集合中移动文件

我想移动磁盘上的文件的位置,但我担心,我将最终重复条目(当我更新同一个文件,文件的路径将不同,所以我会有一个旧文件的入口和一个新入口)。

我没有参与原始应用程序设置,我对verity或coldfusion不太了解(应用程序的其余部分在PHP中)。任何人都可以建议我怎么可以在真理集合中的每个关键字上运行某种正则表达式替换,或者建议另一种方法?

+0

尽管没有真正的答案,但对Solr的进一步调查表明,它远远超过我们目前的方法 - 因此reindexing不再是一个问题:) 为什么有人使用Verity? – 2010-02-01 11:32:46

回答

3

我会建议创建新的集合,根据你的新规格进行调整(至少在你的情况下是新路径),并在应用程序代码中替换它(替换cfindex/cfsearch中的集合名称)。

确定它正常工作后,您可以自由删除旧的。

如果您由于某种原因无法创建集合,那么您可以简单地清除集合,切换路径并对其重新建立索引。

请注意,您可以使用cfcollection标签直接从应用程序(也许是临时脚本)执行所有操作,也可以使用CF Admin(请参见菜单中的Verity Collections)。

+0

清除和重新索引是我考虑过的一个选项,但是重新索引数千个文档的过程非常耗时(我们在那里有pptx/docx/xls文档,这些文档不支持,所以它们也事先转换为PDF )。我一次重建了其中一个索引,花了好几天时间。 我可以做这个作为最后的手段,但我真正喜欢的是只更新所有按键的东西,例如,在SQL中,像'update collection set id = replace(id,'oldlocation','newlocation')' - 这样可以避免重新索引。 – 2010-01-19 22:11:49

+0

那么,这是关于收集大小的非常重要的澄清 - 你应该在你的问题中提到它。对不起,但我的知识并没有给出实现这一点的方法,甚至使用了一些棘手的方法,比如直接访问VerityService * verityService = CreateObject(“java”,“coldfusion.server.ServiceFactory”)。getVerityService()* - 这个onject显示没有什么可以帮助的。 – Sergii 2010-01-20 13:39:37

+0

感谢您的帮助:)在此期间,我将只保留原样;中期我们希望迁移到Solr,这需要重新编排,所以我会担心它。 – 2010-01-21 00:55:09