Tous les produits
Search
Centre de documentation

OpenSearch:Traitement des données

Dernière mise à jour :Sep 23, 2026

Pousse des documents par lots vers une application OpenSearch. Utilisez l'API de documents en bloc pour ajouter, mettre à jour et supprimer des documents dans une seule requête, réduisant ainsi la surcharge réseau et améliorant le débit d'indexation.

Téléchargement de documents

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Une application OpenSearch avec au moins une table de réception de données

  • Le nom de l'application et le nom de la table cible

  • Une signature de requête valide — consultez le Mécanisme de signature de l'API V3 pour savoir comment calculer les chaînes de signature et configurer les en-têtes de requête

Endpoint

POST /v3/openapi/apps/<app_name>/<table_name>/actions/bulk

Remplacez <app_name> par le nom de votre application et <table_name> par le nom de la table de réception de données. L'URL n'inclut pas l'adresse hôte ni les en-têtes de requête.

Format du corps de la requête

Le corps de la requête est un tableau JSON. Chaque élément représente une opération sur un document. L'envoi de plusieurs opérations dans une seule requête réduit les appels réseau et accélère l'indexation — effectuez des traitements par lots chaque fois que possible.

Exemple pour l'édition Premium :

[
    {
        "cmd": "add",
        "timestamp": 1401342874777,
        "fields": {
            "id": "1",
            "title": "This is the title",
            "body": "This is the body"
        }
    },
    {
        "cmd": "update",
        "timestamp": 1401342874778,
        "fields": {
            "id": "2",
            "title": "This is the new title"
        }
    },
    {
        "cmd": "delete",
        "fields": {
            "id": "3"
        }
    }
]

Champs

Champ Obligatoire Description
cmd Oui L'opération à effectuer. Consultez la section Opérations.
fields Oui Les champs du document. Le champ de clé primaire est toujours obligatoire. Pour l'opération delete, seule la clé primaire est nécessaire.
timestamp Non L'horodatage de l'opération en millisecondes. OpenSearch l'utilise pour résoudre les conflits d'ordre lorsque plusieurs opérations ciblent la même clé primaire. S'il est omis, OpenSearch utilise l'heure de réception de la requête. Uniquement pour l'édition Premium — l'édition Standard renvoie le code d'erreur 4007 si ce champ est défini.

Opérations

Choisissez la valeur cmd en fonction du comportement d'idempotence dont vous avez besoin :

Valeur cmd Comportement Support par édition
add Ajoute un document. Si un document avec la même clé primaire existe déjà, le document existant est supprimé avant l'ajout du nouveau. Premium et Standard
delete Supprime le document avec la clé primaire spécifiée. Si aucun document correspondant n'existe, l'opération est tout de même considérée comme réussie. Premium et Standard
update Met à jour des champs spécifiques du document avec la clé primaire spécifiée. Uniquement Premium
upsert Met à jour le document si la clé primaire existe ; sinon, ajoute un nouveau document. Uniquement Premium
L'édition Standard ne prend pas en charge les opérations update ni upsert .

Pour les champs de type tableau, utilisez une valeur de tableau JSON :

[{"cmd": "add", "fields": {"id": "0", "int_array": [14, 85], "string_array": ["abc", "xyz"]}}]

Exemple

Requête (en-têtes et encodage omis) :

POST http://<host>/v3/openapi/apps/app_schema_demo/tab/actions/bulk

[{"cmd":"ADD","fields":{"id":1,"name":"Test Data Push"}}]

Réponse réussie :

{
    "errors": [],
    "request_id": "150116724719940316170289",
    "status": "OK",
    "result": true
}

Réponse d'erreur :

{
    "errors": [
        {
            "code": 2001,
            "message": "The application to be managed does not exist. The application to be managed does not exist.",
            "params": {
                "friendly_message": "The application to be managed does not exist."
            }
        }
    ],
    "request_id": "150116732819940316116461",
    "status": "FAIL"
}

Champs de réponse

Champ Type Description
status string OK si la requête a été reçue ; FAIL si elle a été rejetée.
result string true pour les requêtes réussies. Non renvoyé pour les requêtes ayant échoué.
request_id string L'ID de la requête, utilisé pour le dépannage.
errors array Détails de l'erreur lorsque status est FAIL. Chaque objet d'erreur contient code (code d'erreur), message (description de l'erreur) et params (paramètres supplémentaires). Consultez les Codes d'erreur.

Notes d'utilisation

Traitement asynchrone

status: OK signifie qu'OpenSearch a reçu la requête, mais pas que les documents ont été indexés. OpenSearch traite les données de manière asynchrone. Vérifiez régulièrement la console OpenSearch pour détecter les erreurs de traitement, et portez une attention particulière au code d'erreur 3007.

Limite de taille de la requête

La taille maximale du corps de la requête avant encodage est de 2 Mo. OpenSearch rejette les requêtes qui dépassent cette limite.

Encodage du corps de la requête

Si le corps de la requête contient des caractères chinois, encodez-le en UTF-8. Calculez la valeur de l'en-tête Content-MD5 en fonction du corps encodé en UTF-8. Les requêtes qui ne respectent pas cette exigence échoueront.

Sensibilité à la casse des noms de champs

Les noms de champs ne sont pas sensibles à la casse lors de la poussée de données via l'API ou le SDK.

Limites de fréquence et de taille

Les limites de fréquence et de taille de poussée de données varient selon le type d'application. Consultez les Limites système.

Gestion des erreurs

Vérifiez toujours la valeur de retour après le téléchargement des données. Dépannez rapidement les codes d'erreur pour éviter toute perte de données.