我一直在尝试使用 Marklogic 编写保留策略dls:retention-rule
。问题是dls:retention-rule
提供了保留版本或删除的选项,在我的情况下,我想保留旧版本但在不同的集合中。假设一个文档有 5 个旧版本。我希望 5 个旧版本在 collection1 中,当前版本在 collection2 中。
我如何使用保留策略来实现这一点。如果没有保留政策,还有其他方法吗?
我一直在尝试使用 Marklogic 编写保留策略dls:retention-rule
。问题是dls:retention-rule
提供了保留版本或删除的选项,在我的情况下,我想保留旧版本但在不同的集合中。假设一个文档有 5 个旧版本。我希望 5 个旧版本在 collection1 中,当前版本在 collection2 中。
我如何使用保留策略来实现这一点。如果没有保留政策,还有其他方法吗?
正如您已经发现的那样,保留策略仅管理文档保留。
在我看来,你可以编写一个 CPF 管道来做你想做的事。在管道中,您将检查属性dls:version-id
以查看要在文档上设置的集合。管道将直接更新文档集合,绕过 DLS 功能。
http://docs.marklogic.com/5.0doc/docapp.xqy#display.xqy?fname=http%3a//pubs/5.0doc/xml/cpf/title.xml有关于 CPF 和自定义管道的文档。