Tous les produits
Search
Centre de documentation

OpenSearch:Envoyer des documents par lots

Dernière mise à jour :Aug 21, 2026

OpenSearch LLM-Based Conversational Search Edition vous permet d'envoyer des documents par lots via une API.

Prérequis

  • Obtenez une clé API pour authentifier vos appels. Pour plus d'informations, consultez la rubrique Gérer les clés API.

  • Récupérez un endpoint de service, requis pour tous les appels d'API. Pour plus d'informations, consultez la rubrique Obtenir l'endpoint de service.

Détails de la requête

Méthode de requête

Protocole de requête

Format des données de requête

POST

HTTP

JSON

URL de la requête

{host}/v3/openapi/apps/[app_group_identity]/actions/knowledge-bulk

Paramètres de la requête

Paramètres d'en-tête

Paramètre

Type

Obligatoire

Description

Exemple

Content-Type

string

Oui

Le format du corps de la requête. La valeur doit être application/json.

application/json

Authorization

string

Oui

La clé API pour l'authentification de la requête. La valeur doit être préfixée par Bearer suivi d'un espace.

Bearer OS-d1**2a

Paramètres du corps

Paramètre

Type

Obligatoire

Description

Exemple

cmd

string

Oui

L'action à effectuer sur le document.

ADD/DELETE

fields

map

Oui

Les champs du document sous forme de paires clé-valeur.

fields.id

string

Oui

La clé primaire du document.

13579

fields.title

string

Non

Le titre du document.

Something interesting

fields.url

string

Non

L'URL du document.

https://www.aliyun.com

fields.content

string

Oui

Le contenu du document.

No, is not.

Exemples de requêtes

1. Charger un document dans la table principale

['{
    "cmd": "ADD",
    "fields": {
      "id": "13579",
      "title": "Something interesting",
      "url": "https://www.aliyun.com",
      "content": "No, is not."
      }
}']

Charger un document non structuré (PDF, DOC, TXT ou HTML)

['{
    "cmd" : "URL/BASE64",
    "fields": {
      "id": "Document ID (optional)",
      "type": "File type, such as pdf, doc, txt, or html",
      "title": "File name (optional)",
      "content": "URL or Base64-encoded data",
      "url": "Link (optional)"
    }
 }']
Remarque

Le paramètre url prend uniquement en charge les URL d'accès aux données pour les objets OSS générées à l'aide de la méthode ossClient.generatePresignedUrl.

2. Charger un document dans une table personnalisée

['{
    "cmd" : "ADD",
    "fields": {					# The data object. Define fields based on the table schema.
      "key1": "value1",
      "key2": "value2",
      "key3": "value3"
    },
    "table_name": "custom_table_name"	# The table name. If left empty, the operation is performed on the main table.
  }']

3. Supprimer un document

['{
    "cmd" : "DELETE",
    "fields": {
      "id": "13579333"
    }
}']
  • cmd : obligatoire. Spécifie l'action à effectuer sur le document. Les valeurs valides sont ADD et DELETE. Nous recommandons de regrouper plusieurs opérations dans une seule requête afin d'améliorer l'efficacité du réseau et du traitement. L'opération ADD crée un nouveau document ou écrase un document existant ayant la même clé primaire. L'opération DELETE supprime un document. L'opération est considérée comme réussie même si le document spécifié n'existe pas.

  • fields : obligatoire. Les champs du document. La clé primaire est toujours requise. Pour une action DELETE, seule la clé primaire du document est nécessaire.

  • Remarque : le corps de la requête doit être un tableau JSON pour prendre en charge les opérations par lot sur plusieurs documents.

Paramètres de la réponse

Paramètre

Type

Description

errors

list

Une liste d'erreurs.

status

string

Le statut d'exécution. OK indique un succès et FAIL indique un échec. En cas d'échec de la requête, utilisez le code d'erreur renvoyé pour le dépannage.

request_id

string

L'ID de la requête.

result

boolean

Renvoie true en cas d'exécution réussie. Ce paramètre est omis en cas d'échec.

total

int

Le nombre total de documents dans la requête.

success

int

Le nombre de documents chargés avec succès.

failure

int

Le nombre de documents dont le chargement a échoué.

failed_ids

array

Les ID des documents dont le chargement a échoué.

Exemple de réponse

{
  "request_id" : "abc123-ABC",
  "result" : {
    "total": 100,
    "success": 50,
    "failure": 50,
    "failed_ids": [
      "id1",
      "id2",
      "id3",
      "..."
    ]
  }
  "errors" : [
    {
      "code" : "The error code, if an error occurred.",
      "message" : "The error message, if an error occurred."
    }
  ]
}

Remarques

  • Les noms de champs ne sont pas sensibles à la casse lorsque vous envoyez des données via l'API ou un SDK.

  • L'envoi de données via l'API ou un SDK est soumis à des limites de fréquence et de taille. La limite de taille de chargement ne peut pas être modifiée. Les limites varient selon l'application. Pour plus d'informations, consultez la rubrique Limites.

  • Pour éviter toute perte de données, vérifiez la réponse après chaque chargement et réessayez les requêtes qui échouent avec des codes d'erreur spécifiques, en particulier 3007. Le traitement des données est asynchrone. Une réponse OK indique uniquement que le système a bien reçu les données. Les erreurs de traitement des données s'affichent dans la console. Vérifiez régulièrement la présence de messages d'erreur.

  • Le corps de la requête POST ne peut pas dépasser 2 Mo avant encodage. Le serveur rejette les requêtes dépassant cette limite.

  • Si le corps de la requête d'une opération POST contient des caractères chinois, il doit être encodé en UTF-8. De même, la valeur de l'en-tête Content-MD5 doit être calculée à partir des données encodées en UTF-8. Sinon, l'opération d'envoi échouera.

  • Si un appel d'API renvoie le code d'erreur 4016, l'utilisateur RAM ne dispose pas d'autorisations suffisantes. Accordez l'autorisation AliyunOpenSearchFullAccess à l'utilisateur RAM. Pour obtenir des instructions, consultez la rubrique Accorder des autorisations à un utilisateur RAM.