Marklogic大删除

时间:2012-08-20 16:46:31

标签: marklogic

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

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

3 个答案:

答案 0 :(得分:4)

有几种方法可以解决这个问题。第一个问题是你如何检索文件uri?最好的方法是使用URI词典,以及cts:uriscts:uri-match。其次是你如何执行删除。您可以迭代找到的uri,并为每个调用xdmp:document-delete,但您可以考虑跳过上述所有内容,并完全恢复为xdmp:collection-delete。这似乎非常有效。它确实要求您分配一个唯一的集合标签,并且可以完全删除..

HTH!

答案 1 :(得分:3)

调用xdmp:spawnxdmp:spawn-function可能比corb快一点,只是因为它避免了网络往返。

如果文件是按照这种方式组织的,xdmp:collection-deletexdmp:directory-delete也可能更快。但理想情况下,集合或目录应大约为1,000-100,000个文档。

最后,如果你想摆脱一切,清除森林或数据库要快得多。导出你想要保留的东西甚至可能更快(可能使用XQSync),清除数据库,然后重新导入。

答案 2 :(得分:1)

另请注意,如果启用了目录创建,则删除速度会慢得多。 如果你不需要direcgtories(只有WEBDAV真的需要)我建议不使用目录,那么删除会更快。