Marklogic大删除

Marklogic大删除,marklogic,Marklogic,我想知道是否有人有在Marklogic中删除数百万文档的经验? 目前,我使用简单的XQuery获取需要删除的文档uri,然后使用corb批处理整个操作 一旦我有了URI列表,有没有更快的方法删除数百万个文档?有几种方法可以解决这个问题。第一个问题是如何检索文档uri的?最好的方法是使用URI词典和cts:URI或cts:urimatch。其次是如何执行删除。您可以对找到的URI进行迭代,并调用 XDMP:Debug Debug ,但是您可以考虑跳过以上所有内容,并返回到 XDMP:集合删除>代码

我想知道是否有人有在Marklogic中删除数百万文档的经验? 目前,我使用简单的XQuery获取需要删除的文档uri,然后使用corb批处理整个操作


一旦我有了URI列表,有没有更快的方法删除数百万个文档?

有几种方法可以解决这个问题。第一个问题是如何检索文档uri的?最好的方法是使用URI词典和
cts:URI
cts:urimatch
。其次是如何执行删除。您可以对找到的URI进行迭代,并调用<代码> XDMP:Debug Debug <代码>,但是您可以考虑跳过以上所有内容,并返回到<代码> XDMP:集合删除>代码> ALL。这似乎很有效。它确实需要您指定一个唯一的集合标签,并且可以完全删除

调用or可能比corb快一点,因为它避免了网络往返

如果为其组织文档,
xdmp:collection delete
xdmp:directory delete
也可能更快。但理想情况下,每个集合或目录应该有1000-100000个文档


最后,如果您想清除所有内容,清除森林或数据库的速度会快得多。导出要保留的内容(可能使用XQSync)、清除数据库然后重新导入可能会更快。

还要注意,如果启用了目录创建,则删除速度会大大降低。
如果您不需要目录(仅WEBDAV真正需要),我建议不要使用目录,那么删除速度会快得多。

我认为xdmp:collection delete对我的情况没有帮助,因为我有一个集合“/a/b/c”,其中包含200万个文档,假设只有100万个符合条件。因此,如果我使用xdmp:collection delete,它将删除所有文档..关于我如何获得URI的问题,我使用的是cts:URI。问题是,我要删除的文档没有组织。我现在就试试xdmp:spawn,看看它对corb有多公平。