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

MarkLogic : Archiving data to different collection

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

谢谢

MarkLogic 中的术语 'collection' 与文档分组有关,例如 - 作为一个或多个组的成员,并且在幕后完成,就像范围索引中的值一样。它实际上并不是文档的专用容器。在单个数据库中,集合不会在路径范围索引方面发挥作用,因为集合不是引用路径信息的一部分。数据库中与路径匹配的所有数据都将被索引,无论它是任何特定集合中的成员。您始终可以考虑以一种允许对索引内容进行更多控制的方式对数据建模。

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

  1. 使用集合('some collection name')作为可搜索表达式(xQuery)
  2. 使用 cts:collection-query() 作为搜索的一部分来隔离正确的集合。如何使用它取决于您搜索内容的方式(Java、REST、node.js、sjs、xQuery、搜索库等)——但最终,逻辑是相同的。

如果您想限制搜索结果,请查看 David 的回答。

如果您尝试保存磁盘 space,您必须将数据推送到不同的数据库以将其从索引中排除。

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

HTH!