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

MarkLogic:将数据归档到不同的集合,marklogic,Marklogic,我已设置MarkLogic数据库,希望将数据从一个集合存档到另一个集合,并确保路径范围索引忽略要从新存档集合拾取的数据 感谢MarkLogic中的术语“收集”与文档分组相关,作为一个或多个组的成员,并且在后台完成,就像范围索引中的值一样。它实际上不是文档的专用容器。在单个数据库中,集合不会在路径范围索引方面发挥作用,因为集合不是引用的路径信息的一部分。数据库中与路径匹配的所有数据都将被索引,而不管它在任何特定集合中的成员身份如何。你可以总是考虑对数据进行建模,从而允许对索引进行更多的控制。 目前

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


感谢

MarkLogic中的术语“收集”与文档分组相关,作为一个或多个组的成员,并且在后台完成,就像范围索引中的值一样。它实际上不是文档的专用容器。在单个数据库中,集合不会在路径范围索引方面发挥作用,因为集合不是引用的路径信息的一部分。数据库中与路径匹配的所有数据都将被索引,而不管它在任何特定集合中的成员身份如何。你可以总是考虑对数据进行建模,从而允许对索引进行更多的控制。 目前,我认为您的选择都与在搜索时排除它们有关:

  • 使用集合(“某个集合名称”)作为可搜索表达式(xQuery)
  • 作为搜索的一部分,使用cts:collection-query()隔离适当的集合。如何使用它取决于搜索内容的方式(Java、REST、node.js、sjs、xQuery、搜索库等)——但最终,逻辑是相同的

  • MarkLogic中的术语“collection”与文档分组有关,它是一个或多个组的成员,并且像范围索引中的值一样在后台完成。它实际上不是文档的专用容器。在单个数据库中,集合不会在路径范围索引方面发挥作用,因为集合不是引用的路径信息的一部分。数据库中与路径匹配的所有数据都将被索引,而不管它在任何特定集合中的成员身份如何。你可以总是考虑对数据进行建模,从而允许对索引进行更多的控制。 目前,我认为您的选择都与在搜索时排除它们有关:

  • 使用集合(“某个集合名称”)作为可搜索表达式(xQuery)
  • 作为搜索的一部分,使用cts:collection-query()隔离适当的集合。如何使用它取决于搜索内容的方式(Java、REST、node.js、sjs、xQuery、搜索库等)——但最终,逻辑是相同的

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

    如果您试图节省磁盘空间,则必须将数据推入另一个数据库,以将其从索引中排除

    P>可选地,您可以考虑使用MARKLogic的分层存储能力将较早的数据推到更慢/更便宜的存储。下面是一篇简短的博客文章,讨论了以下几点:


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

    如果您试图节省磁盘空间,则必须将数据推入另一个数据库,以将其从索引中排除

    P>可选地,您可以考虑使用MARKLogic的分层存储能力将较早的数据推到更慢/更便宜的存储。下面是一篇简短的博客文章,讨论了以下几点:


    另一个更多控制的选项是MarkLogic允许标记“don;在森林里没有索引。。通过对文档的林成员身份(我相信是分层存储/Ml9)进行基于时间的查询,您就可以将内容封送到非索引林中或从中封送出来。这可能用于暂存或存档。可能值得一次RFE。另一方面,如果不为数据编制索引,则无法对其进行搜索。那么为什么要把它保存在数据库中呢?您已经可以使用分层存储将其推送到特定林中,然后根据需要备份、分离和删除特定林。另一个更具控制力的选项是MarkLogic允许标记“don;在森林里没有索引。。通过对文档的林成员身份(我相信是分层存储/Ml9)进行基于时间的查询,您就可以将内容封送到非索引林中或从中封送出来。这可能用于暂存或存档。可能值得一次RFE。另一方面,如果不为数据编制索引,则无法对其进行搜索。那么为什么要把它保存在数据库中呢?您已经可以使用分层存储将其推送到特定林中,然后根据需要备份、分离和删除特定林。