Partager via


Ajouter, mettre à jour ou supprimer des documents (API REST en préversion)

s’applique à: 2023-07-01-Preview. Cette version n’est plus prise en charge. mettre à niveau immédiatement vers une version plus récente.

Important

2023-07-01-Preview ajoute :

  • Prise en charge des champs vectoriels dans un document.

Vous pouvez envoyer (push) des documents qui contiennent des champs vectoriels dans un index spécifié à l’aide de HTTP POST. Pour une mise à jour volumineuse, le traitement par lots (jusqu’à 1 000 documents par lot ou environ 16 Mo par lot) améliore les performances d’indexation.

POST https://[service name].search.windows.net/indexes/[index name]/docs/index?api-version=2023-07-01-Preview  
  Content-Type: application/json   
  api-key: [admin key]  

Paramètres d’URI

Paramètre Description
nom du service Obligatoire. Définissez cette valeur sur le nom unique défini par l’utilisateur de votre service de recherche.
nom de l’index Obligatoire. Définissez cette valeur sur le nom de l’index recevant les documents. Vous ne pouvez publier des documents qu’à un seul index à la fois.
api-version Consultez versions de l’API pour plus de versions.

En-têtes de requête

Le tableau suivant décrit les en-têtes de requête obligatoires et facultatifs.

Champs Description
Type de contenu Obligatoire. Définissez cette valeur sur application/json
api-key Facultatif si vous utilisez rôles Azure et qu’un jeton du porteur est fourni sur la demande, sinon une clé est requise. Une clé API est une chaîne unique générée par le système qui authentifie la requête auprès de votre service de recherche. Le chargement de documents nécessite une clé API d’administration. Pour plus d’informations, consultez Se connecter à Azure AI Search à l’aide de l’authentification par clé.

Corps de la demande

Le corps de la requête contient un ou plusieurs documents à indexer. Les documents sont identifiés de manière unique par le biais d’une clé sensible à la casse. Chaque document est associé à une action : « upload », « delete », « merge » ou « mergeOrUpload ». Les demandes de chargement doivent inclure les données de document sous la forme d’un ensemble de paires clé/valeur.

Les champs vectoriels sont de type Collection(Edm.Single). Les données vectorielles se composent d’un tableau de nombres à virgule flottante simple précision.

Les champs vectoriels peuvent contenir des milliers d’incorporations, en fonction de la complexité, de la longueur ou du type du contenu d’origine. Azure AI Search ne convertit pas le contenu en incorporations. Les documents que vous envoyez à un index doivent contenir des incorporations que vous avez générées précédemment.

{  
  "value": [  
    {  
      "@search.action": "upload (default) | merge | mergeOrUpload | delete",  
      "key_field_name": "unique_key_of_document", (key/value pair for key field from index schema)  
      "field_name": field_value (key/value pairs matching index schema),
      "vector_field_name": [ array of single-precision floating point numbers ]
        ...  
    },  
    ...  
  ]  
}  
Propriété Description
@search.action Obligatoire. Les valeurs valides sont « upload », « delete », « merge » ou « mergeOrUpload ». La valeur par défaut est « upload ».
key_field_name Obligatoire. Définition de champ dans l’index qui sert de clé de document et contient uniquement des valeurs uniques. Les touches de document peuvent contenir uniquement des lettres, des chiffres, des tirets ("-"), des traits de soulignement ("_") et des signes égaux ("=") et respectent la casse.
field_name Obligatoire. Paires nom-valeur, où le nom du champ correspond à un nom de champ dans la définition d’index. La valeur est définie par l’utilisateur, mais doit être valide pour le type de champ.

Réponse

Code d’état : 200 est retourné pour une réponse réussie, ce qui signifie que tous les éléments ont été stockés durablement et que l’indexation a commencé. L’indexation s’exécute en arrière-plan et rend les nouveaux documents disponibles (c’est-à-dire, interrogeables et pouvant faire l’objet d’une recherche) quelques secondes après la fin de l’opération d’indexation.

L’indexation réussie est indiquée lorsque la propriété d’état définie sur true pour tous les éléments. La propriété statusCode doit être 201 (pour les documents nouvellement chargés) ou 200 (pour les documents fusionnés ou supprimés).

Exemples

exemple : charger deux documents avec du texte et du contenu vectoriel

Pour une lisibilité, l’exemple suivant montre un sous-ensemble de documents et d’incorporations. Le corps de la requête Charger des documents se compose de 108 documents, chacun avec un ensemble complet d’incorporations pour « titleVector » et « contentVector ».

POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/index?api-version={{api-version}}
Content-Type: application/json
api-key: {{admin-api-key}}
{
    "value": [
        {
            "id": "1",
            "title": "Azure App Service",
            "content": "Azure App Service is a fully managed platform for building, deploying, and scaling web apps. You can host web apps, mobile app backends, and RESTful APIs. It supports a variety of programming languages and frameworks, such as .NET, Java, Node.js, Python, and PHP. The service offers built-in auto-scaling and load balancing capabilities. It also provides integration with other Azure services, such as Azure DevOps, GitHub, and Bitbucket.",
            "category": "Web",
            "titleVector": [
                -0.02250031754374504,
                 . . . 
                        ],
            "contentVector": [
                -0.024740582332015038,
                 . . .
            ],
            "@search.action": "upload"
        },
        {
            "id": "2",
            "title": "Azure Functions",
            "content": "Azure Functions is a serverless compute service that enables you to run code on-demand without having to manage infrastructure. It allows you to build and deploy event-driven applications that automatically scale with your workload. Functions support various languages, including C#, F#, Node.js, Python, and Java. It offers a variety of triggers and bindings to integrate with other Azure services and external services. You only pay for the compute time you consume.",
            "category": "Compute",
            "titleVector": [
                -0.020159931853413582,
                . . .
            ],
            "contentVector": [
                -0.02780858241021633,,
                 . . .
            ],
            "@search.action": "upload"
        }
        . . .
    ]
}

Note

Lorsque vous chargez des valeurs DateTimeOffset avec des informations de fuseau horaire dans votre index, Recherche Azure AI normalise ces valeurs au format UTC. Par exemple, 2019-01-13T14:03:00-08:00 sera stocké en tant que 2019-01-13T22:03:00Z. Si vous devez stocker des informations de fuseau horaire, ajoutez une colonne supplémentaire à votre index.

Voir aussi