Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

131
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda