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

222
Visualizações
¿Funciona correctamente el código de muestra de JavaScript de la API masiva de Elasticsearch?

Quiero usar el índice masivo de Elasticsearch con JavaScript y seguir el documento oficial . Básicamente, solo lo usé tal cual, pero arroja una excepción que dice que la solicitud masiva debe finalizar con un código de nueva línea, que parece ser líneas JSON. Mi pregunta es, si es así, ¿cómo puedo convertir las líneas JSON a JSON y luego pasarlas a la API masiva? ¿O me faltan algunas opciones al llamar a client.bulk?

 ResponseError: illegal_argument_exception: [illegal_argument_exception] Reason: The bulk request must be terminated by a newline [\n] at SniffingTransport.request

Uso Elasticsearch v7.15 y Node.js v16.15 en macOS.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Secundo esto. Estoy usando 8.2 y no funciona. Seguí el ejemplo exactamente y todavía arroja el error de nueva línea.

Solía poder pasar la operación seguida del documento en una matriz y funcionaría bien, pero parece haber sido "actualizado" para peor.

Seguiré probando a ver si se me ocurre algo.

EDITAR: OK. Encontré algo que funciona para mí y espero que funcione para usted también.

Hice un cliente secundario para reutilizar la conexión. Es bastante sencillo, pero aquí está el enlace: https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/child.html

Modifiqué los encabezados de aceptación y tipo de contenido para ese cliente y el código para configurar el cliente se ve así:

 const es = require('@elastic/elasticsearch'); const es_hosts = [ 'https://elastic_host1', 'https://elastic_host2' ]; const es_client = new es.Client({ node: es_hosts }); const es_bulk = es_client.child({ headers: { 'accept': 'application/json', 'content-type': 'application/json' } })

Supongo que está pasando una matriz que tiene una operación y un documento. Convertiremos esa matriz en lo que equivale a ser una cadena grande, recordando agregar la nueva línea.

 let bulk_data = [ { index: { _index: 'my-index' } }, { id: 1, name: 'dave', job: 'janitor' } } ] let bulk_body = { body: bulk_data.map(JSON.stringify).join('\n') + '\n' } const results = await es_bulk.bulk(bulk_body);

Déjeme saber si esto ayuda.

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