MarkLogic:将数据存档到不同的集合

时间:2017-11-21 06:44:21

标签: marklogic

我有MarkLogic数据库设置,并希望将数据从一个集合存档到另一个集合,并确保路径范围索引忽略从新存档集合中提取的数据。

谢谢

2 个答案:

答案 0 :(得分:4)

术语'集合'在MarkLogic中,文档分组与一个或多个组的成员相关,并且在范围索引中的值下完成。它实际上不是文件的独家容器。在单个数据库中,集合不会在路径范围索引方面发挥作用,因为集合不是引用的路径信息的一部分。与路径匹配的数据库中的所有数据都将被编入索引,而不管它在任何特定集合中的成员资格。您始终可以考虑以允许对索引内容进行更多控制的方式对数据建模。

目前,我认为您的选项都与在搜索时排除它们有关:

  1. 使用该集合('某些集合名称')作为可搜索表达式(xQuery)
  2. 使用cts:collection-query()作为搜索的一部分来隔离正确的集合。你将如何使用它取决于你如何搜索你的内容(Java,REST,node.js,sjs,xQuery,搜索库等) - 但最后,逻辑是相同的。

答案 1 :(得分:1)

如果您试图限制搜索结果,请查看David的答案。

如果您正在尝试节省磁盘空间,则必须将数据推送到其他数据库以将其从索引中排除。

或者,您可以考虑使用MarkLogic的分层存储功能将旧数据推送到更慢/更便宜的存储。这是一篇简短的博客文章,讨论了这些:Optimizing Cost and Access with Tiered Storage

HTH!