Tous les produits
Search
Centre de documentation

OpenSearch:API de données

Dernière mise à jour :Aug 21, 2026

URL

/update/$table_name/actions/bulk

  • $table_name correspond à ID d'instance_nom de la table. Par exemple, si l'ID d'instance est ha-843qfng6ydhb et que le nom de la table est test, alors table_name vaut ha-843qfng6ydhb_test.

  • L'URL ci-dessus omet certains éléments tels que les paramètres d'en-tête de requête et l'encodage.

  • L'URL ci-dessus omet l'adresse hôte permettant d'accéder à l'application.

Format pris en charge

JSON

Méthode de requête HTTP

POST

Paramètres d'en-tête

Paramètre

Type

Description

authorization

string

Signature

X-Opensearch-Swift-PK-Field

string

Clé primaire de la table d'index à pousser. Exemple : id

host

string

Hôte de la requête. Consultez-le dans Détails de l'instance > Endpoint API > Domaine API. Exemple : ha-cn-.ha.aliyuncs.com

Mécanisme de signature

Utilisez la méthode suivante pour calculer la signature ( authorization)

Paramètre

Type

Description

accessUserName

string

Nom d'utilisateur. Consultez-le sur la page des détails de l'instance > Informations réseau.

accessPassWord

string

Mot de passe. Modifiez-le sur la page des détails de l'instance > Informations réseau.

import com.aliyun.darabonba.encode.Encoder;
import com.aliyun.darabonbastring.Client;

public class GenerateAuthorization {

 public static void main(String[] args) throws Exception {
 String accessUserName = "username";
 String accessPassWord = "password";
 String realmStr = "" + accessUserName + ":" + accessPassWord + "";
 String authorization = Encoder.base64EncodeToString(Client.toBytes(realmStr, "UTF-8"));
 System.out.println(authorization);
		}
}

Format de retour correct pour authorization

cm9vdDp******mdhbA==

Remarque : Lorsque vous définissez le paramètre authorization dans une requête HTTP, ajoutez le préfixe Basic.

Exemple :

authorization: Basic cm9vdDp******mdhbA==

Format des données du document (body)

[
    {
        "cmd": "add",
        "fields": {
            "id": "1",
            "title": "This is the title",
            "body": "This is the body"
        }
    },
    {
        "cmd": "delete",
        "fields": {
            "id": "3"
        }
    }
]
  • cmd : Obligatoire. Définit l'opération à appliquer au document : « add » ou « delete ». Nous vous recommandons d'effectuer des mises à jour par lots dans une seule requête afin d'améliorer les interactions réseau et l'efficacité du traitement. « add » ajoute un document. Si un document avec la même clé primaire existe déjà, le système effectue d'abord une opération « delete », puis une opération « add ». « delete » supprime un document. Si le document correspondant à la clé primaire n'existe plus, la suppression est considérée comme réussie.

  • fields : Obligatoire. Contenu du document à traiter. La colonne de clé primaire est requise, car toutes les opérations du système s'appuient sur la clé primaire. Pour « delete », indiquez uniquement la clé primaire du document.

  • Pour le type Array, utilisez JsonArray, par exemple [{"fields": { "id": "0","int_array": [14,85],"string_array": ["abc","xyz"]},"cmd": "add"}].

  • Remarque : Le niveau le plus externe est de type JsonArray, ce qui permet des opérations par lots sur plusieurs documents.

Exemple

Requête : (Les paramètres d'en-tête de requête et l'encodage sont omis ici.)

http://ha-cn-.ha.aliyuncs.com/update/$table_name/actions/bulk //Les données suivantes à télécharger doivent être placées dans le corps [{ "cmd": "add", "fields": { "id": 1, "name": "Test Data Push" } }]

Réponse réussie

L'absence de paramètres de retour indique que le push a réussi.

Réponse d'erreur

[
    {
        "code": 3012,
        "message": "Resource not found."
    }
]

Remarques

  • Lorsque vous utilisez l'API ou le SDK pour pousser des données, les noms de colonnes de l'application ne sont pas sensibles à la casse.

  • Des limites s'appliquent au nombre et à la taille des données poussées via l'API ou le SDK. Ces limites varient selon l'application. Pour plus d'informations, consultez les descriptions des limites du système.

  • Après le téléchargement des données, vérifiez la valeur de retour et réessayez en cas de codes d'erreur pertinents (en particulier l'erreur 3007). Sinon, une perte de données peut survenir. De plus, le traitement des données est asynchrone. Un retour « OK » indique uniquement que le système a bien reçu les données. Les erreurs survenant lors du traitement des données apparaissent dans les messages d'erreur de la console ; vérifiez-les donc rapidement.

  • Une limite de taille s'applique aux données POST. Si le volume total des documents téléchargés est trop important (2 Mo avant encodage), le serveur refuse les paramètres et renvoie une exception.