Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

135
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda