Marklogic большое удаление

Я хочу знать, есть ли у кого-нибудь опыт удаления миллионов документов в Marklogic? На данный момент я использовал простые xqueries для получения URI документов, которые необходимо удалить, а затем я использую corb для пакетной обработки всей операции.

Есть ли более быстрый способ удалить миллионы документов, если у меня есть список Uris?


person Harry    schedule 20.08.2012    source источник


Ответы (3)


Есть несколько способов решить эту проблему. Первый вопрос: как получить URI документа? Лучший подход для этого - использовать лексикон URI и cts:uris или cts:uri-match. Во-вторых, как вы выполняете удаление. Вы можете перебирать найденные uri и вызывать xdmp:document-delete для каждого, но вы можете пропустить все вышеперечисленное и полностью вернуться к xdmp:collection-delete. Кажется, это работает очень эффективно. Это требует, чтобы у вас был назначен уникальный ярлык коллекции, и его можно полностью удалить.

HTH!

person grtjn    schedule 20.08.2012
comment
Я не думаю, что xdmp: collection-delete поможет в моем случае, так как у меня есть коллекция / a / b / c, которая содержит 2 миллиона документов и позволяет сказать, что 1 миллион имеет право. Итак, если я использую xdmp: collection-delete, он удалит все документы .. Что касается вашего вопроса о том, как я получаю URI, я использую cts: uris. - person Harry; 21.08.2012

Вызов xdmp:spawn или _ 2_ может быть немного быстрее, чем corb, просто потому, что он избегает сетевого обхода.

Если документы организованы для этого, xdmp:collection-delete или xdmp:directory-delete также могут быть быстрее. Но в идеале коллекции или каталоги должны содержать около 1000-100000 документов каждый.

Наконец, если вы хотите избавиться от всего, было бы намного быстрее очистить лес или базу данных. Может быть даже быстрее экспортировать то, что вы хотите сохранить (возможно, используя XQSync), очистить базу данных, а затем повторно импортировать.

person mblakele    schedule 21.08.2012
comment
В том-то и дело, что документы, которые я хочу удалить, не организованы. Сейчас я попробую xdmp: spawn и посмотрю, насколько он хорош против corb. - person Harry; 21.08.2012

Также обратите внимание, что если у вас включено создание каталогов, удаление происходит значительно медленнее. Если вам не нужны директории (действительно нужны только для WEBDAV), я предлагаю не использовать каталоги, тогда удаление будет намного быстрее.

person DALDEI    schedule 21.08.2012