无论如何在marklogic中都可以一次性获取所有内容

时间:2013-06-26 13:46:44

标签: marklogic

可以一次性提取Marklogic数据库(内容数据库)中的所有内容吗? ML是否提供任何开箱即用的解决方案。我读到了关于mlcp的内容。这对我来说看起来像一个命令行实用程序。我想要的是一个可以作为xquery包含在模块DB中的函数。

3 个答案:

答案 0 :(得分:1)

http://docs.marklogic.com/fn:collection将返回整个数据库,如果这是您真正想要的。

答案 1 :(得分:0)

这取决于你所说的“提取”...这就是你想要的结果?一个大的连锁文件?目录树?一个Zip文件? 还要意识到,除了相当小的数据库大小之外,您还必须逐步执行此操作,因为整个数据库无法存储在内存中。

寻找实现目标的方法

https://docs.marklogic.com/xdmp:zip-create

您可以创建所有文档的单个ZIP文件,然后使用

将其存储到文件系统中

https://docs.marklogic.com/xdmp:save 这只有在您可以将整个数据库保存在内存中时才有效。

或者您可以遍历所有文档并使用xdmp逐一保存:save

答案 2 :(得分:0)

据我所知,除了mlcp之外,MarkLogic的发行版中还没有开箱即用的导出解决方案,还有像备份这样的东西。如果有像Information Studio这样的东西,但出口而不是导入会很好。

但是,您将拥有所需的所有成分,并且您可以编写一些相对容易的代码。您通常采取的基本步骤是:

  • 识别您想要的文档,最好通过URI词典获取他们的文字
  • 将这个列表分成几块让我们说100个文档
  • 为每个从数据库读取文档的块生成子任务,并使用xdmp:zip-create和xdmp等函数将它们写入磁盘:保存为@daldei建议。
  • 可能有主要和子任务将一些统计信息写入数据库。 info:和infodev:libraries提供了处理'ticket'的功能,对此非常有用。

HTH!