Estamos haciendo algo de manipulación y luego estamos tratando de insertar datos en la base de datos elástica. Mi problema es que se insertan pocos registros en el índice y faltan pocos. Puedo ver los datos en mi archivo de registro y tampoco tengo ningún error elástico. Como no hay ningún error, tampoco pude depurar. Incluso sin insertar , los clientes obtienen la respuesta. A continuación se muestra mi código.
file.js async function InsertModelES() { var objn= { PID: ID, TID: MID, UserID:userID, HID: HrID, }; await elasticClient.index({ index: 'scrn', type: '_doc', id: ID , body: objn }, function (err, data) { if (err) { console.log("err ", err) } else { } }) app.js app.post('/allrequest', async function(req, res){ let result = await file1.allrequest(data,urn); await file1.InsertModelES() res.send(result); }Este problema solo ocurre cuando la carga es alta. ¿Cuál podría ser la razón?
Es errático, y como dijiste "sucede cuando la carga es alta". Probablemente solucionará el problema si establece refresh=true al indexar el nuevo documento.
Desde la API de índice :
actualizar (Opcional, enumeración) Si es verdadero, Elasticsearch actualiza los fragmentos afectados para que esta operación sea visible para la búsqueda, si espera_para, espere una actualización para que esta operación sea visible para la búsqueda, si es falso, no haga nada con las actualizaciones. Valores válidos: true, false, wait_for. Valor predeterminado: falso.