【问题标题】:Moving files in a verity collection在 verity 集合中移动文件
【发布时间】:2010-01-19 10:06:40
【问题描述】:

我有一个文件集合,这些文件已添加到一个 verity 集合中。文件名,完整路径,已被用作key。

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

我没有参与最初的应用程序设置,也不太了解verity 或coldfusion(应用程序的其余部分使用PHP)。谁能建议我如何对 verity 集合中的每个键运行某种正则表达式替换,或者可能建议另一种方法?

【问题讨论】:

  • 虽然不是一个真正的答案,但对 Solr 的进一步调查表明它比我们目前的方法要快得多 - 所以重新索引不再是问题 :) 为什么有人使用 Verity?

标签: coldfusion verity cfsearch


【解决方案1】:

我建议创建新集合,调整到您的新规范(至少在您的情况下是新路径)并在应用程序代码中切换到它(替换 cfindex/cfsearch 中的集合名称)。

确保它正常工作后,您可以随意删除旧的。

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

请注意,您可以使用 cfcollection 标记直接从应用程序(可能是临时脚本)执行所有这些操作,也可以使用 CF Admin(请参阅菜单中的 Verity 集合)。

【讨论】:

  • 清除和重新索引是我考虑过的一个选项,但是重新索引数千个文档的过程非常耗时(我们有 pptx/docx/xls 文档,verity 不支持,所以他们也被预先转换为PDF)。我曾经重建过一个索引,花了几天时间。我可以将其作为最后的手段,但我真正喜欢的是只更新所有键的东西,例如在 SQL 中类似于“更新集合集 id = replace(id, 'oldlocation', 'newlocation')' - 这将避免重新索引。
  • 嗯,这是关于集合大小的非常重要的澄清——你应该在你的问题中提到它。对不起,但我的知识并没有给出实现这一点的方法,即使使用像直接访问 VerityService verityService = CreateObject("java","coldfusion.server.ServiceFactory").getVerityService() 这样的棘手方法-- 这个问题没有任何帮助。
  • 感谢您的帮助 :) 同时,我将保持原样;中期我们无论如何都希望迁移到 Solr,这将需要重新索引,所以我会担心它。
  • 在我最后的评论中,Solr 的实施进展顺利——总体而言,Solr 将 Verity 吹得水泄不通。更灵活、更快的查询和更快的索引。
猜你喜欢
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
相关资源
最近更新 更多