Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

139
Views
Eliminación masiva de documentos según un patrón Marklogic/script Java

Estoy tratando de eliminar documentos de forma masiva según un patrón pero, dado que la colección contiene más de 500 000 documentos, parece que el forloop se bloquea. A continuación se muestra mi código:

 for (const uri of cts.uris("", null, cts.jsonPropertyValueQuery("source", "survey"))) { xdmp.documentDelete(uri); }

¿Alguien puede ayudarme con una mejor manera de eliminar documentos en MarkLogic cuando hay un gran volumen?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Es probable que intentar una consulta de tipo "hervir el océano" para modificar un conjunto realmente grande de documentos en una sola transacción se encuentre con límites, ya sea en el tiempo de ejecución, el tamaño de la transacción, la caché de árbol expandida, etc.

Lo mejor es dividir el trabajo en unidades más pequeñas.

Una forma fácil es generar el trabajo en múltiples transacciones que se ejecutan en el servidor de tareas. Puede hacer esto con bastante facilidad en XQuery con xdmp:spawn-function() (desafortunadamente, la función equivalente no está disponible en SJS):

 xquery version "1.0-ml"; for $URI in cts:uris("", (), cts:json-property-value-query("source", "survey")) return xdmp:spawn-function(function(){ xdmp:document-delete($URI) })

Puede modificar el código anterior para eliminar subconjuntos de URI, en lugar de uno a la vez. Sin embargo, esas transacciones de eliminación deberían ejecutarse muy rápidamente (y en paralelo para tantos subprocesos como haya configurado para el servidor de tareas), por lo que puede que no valga la pena la molestia de un código más complicado.

Otra opción es usar una herramienta por lotes, como CoRB

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!