Tous les produits
Search
Centre de documentation

OpenSearch:Update data

Dernière mise à jour :Aug 10, 2026

Ajoute et supprime des documents dans une table OpenSearch Vector Search Edition via une seule requête groupée.

Principes de la requête

Propriété Valeur
Method POST
Format JSON
Endpoint path /update/$table_name/actions/bulk

Définissez $table_name sur {instance_id}_{table_name}. Par exemple, si l'ID d'instance est ha-843qfng6ydhb et le nom de la table est test, utilisez ha-843qfng6ydhb_test.

En-têtes de requête

En-tête Type Description
authorization String Signature d'authentification. Format : Basic <Base64-encoded-credentials>. Consultez la section Générer l'en-tête d'autorisation.
X-Opensearch-Swift-PK-Field String Champ de clé primaire de la table d'index. Exemple : id.
host String Endpoint de l'instance OpenSearch. Retrouvez-le dans la section API Endpoint de la page Instance Details. Exemple : ha-cn-**********.ha.aliyuncs.com.

Générer l'en-tête d'autorisation

La valeur de l'en-tête authorization correspond à la chaîne username:password encodée en Base64.

Paramètres

Paramètre Type Description
accessUserName String Nom d'utilisateur. Retrouvez-le dans la section API Endpoint de la page Instance Details.
accessPassWord String Mot de passe. Modifiez-le dans la section API Endpoint de la page Instance Details.

Générer la valeur

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);
    }
}

Le code génère une chaîne encodée en Base64, telle que cm9vdDp******mdhbA==.

Ajoutez le préfixe Basic lors de la définition de l'en-tête dans votre requête HTTP :

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

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.

[
    {
        "cmd": "add",
        "fields": {
            "id": "1",
            "title": "This is the title",
            "body": "This is the body"
        }
    },
    {
        "cmd": "delete",
        "fields": {
            "id": "3"
        }
    }
]

Champs

Champ Obligatoire Description
cmd Oui Opération à exécuter. Valeurs valides : add, delete. Regroupez plusieurs opérations dans une seule requête pour améliorer l'efficacité réseau et le traitement.
fields Oui Champs du document concerné par l'opération. Doit inclure le champ de clé primaire : OpenSearch identifie chaque document par sa valeur de clé primaire.

Comportement de cmd

Valeur Comportement
add Ajoute le document. Si un document avec la même clé primaire existe déjà, l'original est supprimé avant l'écriture du nouveau document.
delete Supprime le document correspondant à la clé primaire spécifiée. L'opération aboutit même si aucun document correspondant n'existe.

Champs de type ARRAY

Spécifiez les champs de type ARRAY sous forme de tableaux JSON :

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

Exemple de requête

POST http://ha-cn-**********.ha.aliyuncs.com/update/$table_name/actions/bulk

Corps de la requête :

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

Réponses

Succès

Aucun corps de réponse n'est renvoyé en cas de succès.

Erreur

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

Notes d'utilisation

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

  • La fréquence d'envoi et les limites de taille des données varient selon l'application. Consultez la documentation relative aux limites pour votre type d'application.

  • Après avoir envoyé des données, vérifiez la présence de codes d'erreur dans la réponse. Le code d'erreur 3007 nécessite un dépannage immédiat : des erreurs de données non résolues peuvent entraîner une perte de données. OpenSearch traite les données de manière asynchrone : une réponse positive signifie que les données ont été reçues, mais pas que le traitement est terminé. Surveillez les erreurs de traitement dans la console OpenSearch.

  • La taille maximale du corps de la requête avant encodage est de 2 Mo. Les requêtes dépassant cette limite sont rejetées.