Use la API masiva para agregar, actualice y elimine documentos en su aplicación de OpenSearch.
Carga de documentos
Esta API permite agregar, actualice y elimine documentos, incluidas las operaciones por lotes.
-
URL
/v3/openapi/apps/$app_name/$table_name/actions/bulk$app_name: el nombre de su aplicación.
$table_name: el nombre de la tabla a la que desea enviar datos.
La URL anterior omite los parámetros del encabezado de solicitud y los detalles de codificación.
La URL anterior omite la dirección del host de la aplicación.
Formato compatible: JSON
Método de solicitud HTTP: POST
Parámetros de solicitud
Para obtener más información sobre la firma de solicitudes y los encabezados, consulte v3 API signature mechanism.
Formato de datos del documento
A continuación se muestra un ejemplo del formato de datos:
[
{
"cmd": "add",
"timestamp": 1401342874777,
"fields": {
"id": "1",
"title": "This is the title",
"body": "This is the body"
}
},
{
"cmd": "delete",
"fields": {
"id": "2"
}
}
]
cmd: obligatorio. La operación por ejecutar en el documento. Valores válidos: add y delete. Puede realizar actualizaciones por lotes en una sola solicitud para mejorar la eficiencia de la red. La operación add agrega un nuevo documento. Si ya existe un documento con la misma clave principal, el sistema elimina primero el documento existente y luego agrega el nuevo. La operación delete elimina un documento. Si no existe un documento con la clave principal especificada, la operación se considera exitosa de todos modos.
fields: obligatorio. El contenido del documento. El campo de clave principal es necesario porque todas las operaciones del sistema usan dicha clave. Para una operación de eliminación, solo se requiere la clave principal.
Para tipos Array, use un JsonArray. Por ejemplo:
[{"fields": { "id": "0","int_array": [14,85],"string_array": ["abc","xyz"]},"cmd": "ADD"}].Nota: El elemento de nivel superior es un JsonArray que admite operaciones por lotes en varios documentos.
Resultado de retorno
|
Parámetro |
Tipo |
Descripción |
|
errors |
array |
Los detalles del error. message: el mensaje de error. params: los parámetros del error. code: el error code. |
|
request_id |
string |
El ID de la solicitud. Use este ID para la solución de problemas. |
|
status |
string |
El resultado de la operación. OK indica éxito. FAIL indica fallo. Si la operación falla, solucione el problema con base en el código de error devuelto. |
|
result |
string |
Se devuelve solo cuando la operación tiene éxito. El valor es true. |
Ejemplos
Solicitud de ejemplo (se omiten los parámetros del encabezado de solicitud y los detalles de codificación):
http://host/v3/openapi/apps/app_schema_demo/tab/actions/bulk
// Place the following data in the request body
[{"cmd":"ADD","fields":{"id":1,"name":"Test Data Push"}}]
Respuesta exitosa
{
"errors": [],
"request_id": "150116724719940316170289",
"status": "OK",
"result": true
}
Respuesta de error
{
"errors": [
{
"code": 2001,
"message": "The specified application does not exist.",
"params": {
"friendly_message": "The specified application does not exist."
}
}
],
"request_id": "150116732819940316116461",
"status": "FAIL"
}
Notas
Cuando envía datos mediante una API o un SDK, los nombres de los campos en la aplicación no distinguen entre mayúsculas y minúsculas.
La frecuencia y el tamaño del envío de datos están sujetos a límites que varían según la aplicación. Para obtener más información, consulte Limits.
Después de cargue datos, compruebe el valor de retorno. Para evitar la pérdida de datos, reintente la operación si se devuelven ciertos códigos de error, como el código 3007. El procesamiento de datos es asíncrono. Un valor de retorno "OK" solo indica que el sistema recibió los datos. Los errores que ocurren durante el procesamiento aparecen en la consola. Revise la consola oportunamente para ver los mensajes de error.
El tamaño de los datos en una solicitud POST está limitado. Si el tamaño total de los documentos que cargue supera los 2 MB antes de la codificación, el servidor rechaza la solicitud y devuelve un error.
Si el cuerpo de una solicitud POST contiene caracteres chinos, debe codificar los datos en UTF-8. También debe codificar los datos en UTF-8 antes de calcular el valor MD5 para el encabezado Content-MD5. De lo contrario, la operación de envío fallará.