Penghapusan besar Marklogic

Saya ingin tahu apakah ada yang punya pengalaman menghapus jutaan dokumen di Marklogic? Saat ini saya menggunakan xqueries sederhana untuk mengambil dokumen uri yang perlu dihapus dan kemudian saya menggunakan corb untuk mengelompokkan seluruh operasi.

Apakah ada cara yang lebih cepat untuk menghapus jutaan dokumen setelah saya memiliki daftar Uris?


person Harry    schedule 20.08.2012    source sumber


Jawaban (3)


Ada beberapa cara untuk mengatasi hal ini. Pertanyaan pertama adalah bagaimana Anda mengambil dokumen uri itu? Pendekatan terbaik untuk itu adalah menggunakan leksikon URI, dan cts:uris atau cts:uri-match. Kedua adalah bagaimana Anda melakukan penghapusan. Anda dapat mengulangi uri yang ditemukan, dan memanggil xdmp:document-delete untuk masing-masing uri, namun Anda mungkin mempertimbangkan untuk melewatkan semua di atas, dan kembali ke xdmp:collection-delete semuanya. Tampaknya itu bekerja dengan sangat efisien. Itu memang mengharuskan Anda untuk menetapkan label koleksi unik, dan itu dapat dihapus seluruhnya..

HTH!

person grtjn    schedule 20.08.2012
comment
Saya tidak berpikir xdmp:collection-delete akan membantu dalam kasus saya, karena saya memiliki koleksi /a/b/c yang berisi 2 juta dokumen dan hanya katakanlah 1 juta yang memenuhi syarat. Jadi, jika saya menggunakan xdmp:collection-delete, itu akan menghapus semua dokumen..Pada pertanyaan Anda tentang bagaimana saya mendapatkan URI, saya menggunakan cts:uris. - person Harry; 21.08.2012

Memanggil xdmp:spawn atau xdmp:spawn-function mungkin sedikit lebih cepat daripada corb, hanya karena ia menghindari perjalanan bolak-balik jaringan.

Jika dokumen diatur untuk itu, xdmp:collection-delete atau xdmp:directory-delete juga bisa lebih cepat. Namun idealnya koleksi atau direktori masing-masing harus berisi sekitar 1.000-100.000 dokumen.

Terakhir, jika Anda ingin menghilangkan semuanya, akan lebih cepat jika Anda menebangi hutan atau database. Bahkan bisa lebih cepat jika mengekspor barang yang ingin Anda simpan (mungkin menggunakan XQSync), menghapus database, lalu mengimpor ulang.

person mblakele    schedule 21.08.2012
comment
Masalahnya, dokumen yang ingin saya hapus tidak terorganisir. Saya akan mencoba xdmp:spawn sekarang dan melihat seberapa adilnya melawan corb. - person Harry; 21.08.2012

Perhatikan juga bahwa jika Anda mengaktifkan pembuatan direktori, penghapusan akan jauh lebih lambat. Jika Anda tidak membutuhkan direktori (hanya diperlukan untuk WEBDAV) saya sarankan tidak menggunakan direktori maka penghapusan akan jauh lebih cepat.

person DALDEI    schedule 21.08.2012