Créer un indexeur (API REST Recherche Azure AI)

Un indexeur automatise l’indexation à partir de sources de données Azure prises en charge, telles que Stockage Azure, Azure SQL Database et Azure Cosmos DB, pour n’en nommer que quelques-unes. Les indexeurs utilisent une source de données et un index prédéfinis pour établir un pipeline d’indexation qui extrait et sérialise les données sources, et les transmet à un service de recherche pour l’ingestion de données. Pour l’enrichissement par IA de l’image et du texte non structuré, les indexeurs peuvent également accepter un ensemble de compétences qui définit le traitement par IA.

La création d’un indexeur l’ajoute à votre service de recherche et l’exécute. Si la demande réussit, l’index est rempli avec du contenu pouvant faire l’objet d’une recherche à partir de la source de données.

Vous pouvez utiliser POST ou PUT sur la demande. Pour l’une ou l’autre, le document JSON dans le corps de la demande fournit la définition de l’objet.

POST https://[service name].search.windows.net/indexers?api-version=[api-version]
    Content-Type: application/json  
    api-key: [admin key]  

Vous pouvez également utiliser PUT et spécifier le nom de l’indexeur sur l’URI.

PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=[api-version]
    Content-Type: application/json  
    api-key: [admin key]    

Le protocole HTTPS est requis pour toutes les requêtes de service. Si l’indexeur n’existe pas, il est créé. S’il existe déjà, il est mis à jour vers la nouvelle définition, mais vous devez émettre une requête Run Indexer si vous souhaitez exécuter l’indexeur.

La configuration de l’indexeur varie en fonction du type de source de données. Pour obtenir des conseils sur la création d’indexeurs propres à la plateforme de données, commencez par consulter la vue d’ensemble des indexeurs, qui inclut la liste complète des articles connexes.

Paramètres 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’indexeur Obligatoire sur l’URI si vous utilisez PUT. Le nom doit être en minuscules, commencer par une lettre ou un nombre, avoir aucune barre oblique ou point, et comporter moins de 128 caractères. le nom doit commencer par une lettre ou un nombre, mais le reste du nom peut inclure n’importe quelle lettre, nombre et tirets, tant que les tirets ne sont pas consécutifs.
api-version Obligatoire. Pour obtenir la liste des versions prises en charge, consultez Versions d’API .

En-têtes de requête

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

Champs Description
Content-Type Obligatoire. À définir avec la valeur application/json
api-key Facultatif si vous utilisez des rôles Azure et qu’un jeton de porteur est fourni sur la demande, sinon une clé est requise. Les demandes de création doivent inclure un api-key en-tête défini sur votre clé d’administration (par opposition à une clé de requête). Pour plus d’informations, consultez Se connecter à Azure AI Search à l’aide de l’authentification par clé .

Corps de la demande

Les composants source de données, index et ensemble de compétences font partie de la définition d’un indexeur, mais chacun est indépendant et peut être utilisé dans différentes combinaisons. Par exemple, vous pouvez utiliser une même source de données avec plusieurs indexeurs ou un même index avec plusieurs indexeurs ou plusieurs indexeurs écrivant dans un seul index.

Le code JSON suivant est une représentation de haut niveau des parties main de la définition.

{   
    "name" : (optional on PUT; required on POST) "Name of the indexer",  
    "description" : (optional) "Anything you want, or nothing at all", 
    "dataSourceName" : (required) "Name of an existing data source",  
    "targetIndexName" : (required) "Name of an existing index",  
    "skillsetName" : (required for AI enrichment) "Name of an existing skillset",
    "disabled" : (optional) Boolean value indicating whether the indexer is disabled. False by default,
    "schedule" : (optional but runs once immediately if unspecified) { ... },  
    "parameters": { (optional)
       "batchSize": null,
       "maxFailedItems": 0,
       "maxFailedItemsPerBatch": 0,
       "base64EncodeKeys": null,
       "configuration": { (optional, mostly specific to the data source)
            "executionEnvironment": null
        }
      }, 
    "fieldMappings" : (optional) { ... },
    "outputFieldMappings" : (required for AI enrichment) { ... },
    "encryptionKey":(optional) { }
} 

La requête peut contenir les propriétés suivantes :

Propriété Description
name Obligatoire. Le nom doit être en minuscules, commencer par une lettre ou un nombre, avoir aucune barre oblique ou point, et comporter moins de 128 caractères. Le nom doit commencer par une lettre ou un nombre, mais le reste du nom peut inclure n’importe quelle lettre, nombre et tirets, tant que les tirets ne sont pas consécutifs.
dataSourceName Obligatoire. Nom d’une source de données existante. Il inclut souvent des propriétés qu’un indexeur peut utiliser pour exploiter les caractéristiques de la plateforme source. Par conséquent, la source de données que vous passez à l’indexeur détermine la disponibilité de certaines propriétés et paramètres, tels que le filtrage de type de contenu dans les objets blob Azure. ou délai d’expiration de la requête pour Azure SQL Base de données.
targetIndexName Obligatoire. Nom d’un schéma d’index existant. Il définit la collection de champs contenant des attributions pouvant être recherchées, filtrables, récupérables et autres qui déterminent la façon dont le champ est utilisé. Lors de l’indexation, l’indexeur analyse la source de données, décode éventuellement des documents pour en extraire des informations, sérialise les résultats au format JSON et indexe la charge utile en fonction du schéma défini pour votre index.
skillsetName Requis pour l’enrichissement par IA. Nom d’un ensemble de compétences existant, un par indexeur. Comme pour les sources de données et les index, un ensemble de compétences est une définition indépendante que vous attachez à un indexeur. Vous pouvez réaffecter un ensemble de compétences à d’autres indexeurs, mais chaque indexeur ne peut utiliser qu’un ensemble de compétences à la fois.
schedule Facultatif, mais s’exécute une fois immédiatement si non spécifié et non désactivé. Une planification contient interval (obligatoire) et startTime (facultatif). Pour plus d’informations, consultez Planifier un indexeur.

interval spécifie la fréquence d’exécution de l’indexeur. L’intervalle minimal autorisé est de cinq minutes ; l’intervalle maximal autorisé est d’une journée. Il doit être formaté en tant que valeur « dayTimeDuration » XSD (un sous-ensemble limité d'une valeur de durée ISO 8601 ). Voici le modèle suivant : "P[nD][T[nH][nM]]". exemples : PT15M toutes les 15 minutes, PT2H toutes les 2 heures.

startTime est un dateheure UTC lorsque l’indexeur doit commencer à s’exécuter.
disabled facultatif. Valeur booléenne indiquant si l’indexeur est désactivé. Définissez cette propriété si vous souhaitez créer une définition d’indexeur sans l’exécuter immédiatement. False par défaut.
parameters facultatif. Propriétés permettant de modifier le comportement du runtime.

"batchSize" (entier). Spécifie le nombre d’éléments lus à partir de la source de données et indexés comme un lot unique afin d’améliorer les performances. La valeur par défaut est spécifique à la source (1000 pour Azure SQL Database et Azure Cosmos DB, 10 pour Stockage Blob Azure).

"maxFailedItems" (entier). Spécifie le nombre d’erreurs à tolérer avant qu’un indexeur soit considéré comme un échec. La valeur par défaut est 0. Définissez ce paramètre sur -1 si vous ne souhaitez pas que des erreurs arrêtent le processus d’indexation. Utilisez Obtenir l’état de l’indexeur pour récupérer des informations sur les documents ayant échoué.

"maxFailedItemsPerBatch" (entier). Spécifie le nombre d’erreurs à tolérer dans chaque lot avant qu’une exécution de l’indexeur ne soit considérée comme un échec. La valeur par défaut est 0. Définissez ce paramètre sur -1 si vous ne souhaitez pas que des erreurs arrêtent le processus d’indexation.

"base64EncodeKey" (Boolean). Spécifie s’il faut encoder des clés de document qui contiennent des caractères non valides.

"configuration". Propriétés qui varient en fonction de la source de données.

"executionEnvironment" (chaîne). Remplace l’environnement d’exécution choisi par les processus système internes. La définition explicite de l’environnement d’exécution Private sur est requise si les indexeurs accèdent à des ressources externes via des connexions de point de terminaison privé. Ce paramètre se trouve sous "configuration". Pour l’ingestion de données, ce paramètre est valide uniquement pour les services approvisionnés en tant que de base ou standard (S1, S2, S3). Pour le traitement du contenu d’enrichissement par IA, ce paramètre est valide uniquement pour S2 et S3. Les valeurs valides ne respectent pas la casse et se composent de [null ou non spécifié], Standard (par défaut) ou Private.
fieldMappings facultatif. Associe explicitement un champ source à un champ de destination dans l’index de recherche. Utilisé lorsque les champs source et de destination ont des noms ou des types différents, ou lorsque vous souhaitez spécifier une fonction. Une fieldMappings section comprend sourceFieldName (obligatoire, un champ dans la source de données sous-jacente), targetFieldName (obligatoire, un champ dans un index) et un champ facultatif mappingFunction pour la sortie d’encodage. Vous trouverez la liste des fonctions prises en charge et des exemples dans fonctions de mappage de champs. Pour plus d’informations générales, consultez Mappages et transformations de champs.
outputFieldMappings Obligatoire pour un pipeline d’enrichissement. Mappe la sortie d’un ensemble de compétences à un index ou à une projection. Une outputFieldMappings section comprend sourceFieldName (obligatoire, un nœud dans une arborescence d’enrichissement), targetFieldName (obligatoire, un champ dans un index) et une option mappingFunction pour la sortie d’encodage. Vous trouverez la liste des fonctions prises en charge et des exemples dans fonctions de mappage de champs. Pour plus d’informations générales, consultez Comment mapper des champs de sortie à partir d’un ensemble de compétences.
encryptionKey facultatif. Utilisé pour chiffrer une définition d’indexeur au repos avec vos propres clés, gérées dans votre Key Vault Azure. Disponible pour les services de recherche facturables créés le ou après le 01/01/01/2019.

Une encryptionKey section contient un défini par keyVaultKeyName l’utilisateur (obligatoire), un généré par keyVaultKeyVersion le système (obligatoire) et un keyVaultUri fournissant la clé (obligatoire, également appelé nom DNS). Un exemple d’URI peut être « https://my-keyvault-name.vault.azure.net".

Si vous le souhaitez, vous pouvez spécifier accessCredentials si vous n’utilisez pas d’identité système managée. Propriétés de accessCredentials include applicationId (Microsoft Entra ID ID d’application qui a obtenu des autorisations d’accès à votre Key Vault Azure spécifié) et applicationSecret (clé d’authentification de l’application inscrite). Un exemple de la section suivante illustre la syntaxe.

Paramètres de configuration des objets blob

Plusieurs paramètres sont propres à un indexeur particulier, par exemple l’indexation d’objets blob Azure.

Paramètre Type et valeurs autorisées Usage
"parsingMode" String
"text"
"delimitedText"
"json"
"jsonArray"
"jsonLines"
Pour les objets blob Azure, définissez ce paramètre sur text pour améliorer les performances de l’indexation des fichiers de texte brut dans le stockage d’objets blob.
Pour les objets blob au format CSV, définissez ce paramètre sur delimitedText lorsque les objets blob sont des fichiers CSV bruts.
Pour les objets blob JSON, définissez sur json pour extraire du contenu structuré ou pour jsonArray extraire des éléments individuels d’un tableau sous forme de documents distincts dans Recherche Azure AI. Permet jsonLines d’extraire des entités JSON individuelles, séparées par une nouvelle ligne, en tant que documents distincts dans Recherche Azure AI.
"excludedFileNameExtensions" String
liste de valeurs séparées par des virgules
définie par l’utilisateur
Pour les objets blob Azure, ignore les types de fichier contenus dans la liste. Par exemple, vous pouvez inclure les extensions « .png, .mp4 » pour ignorer ces fichiers lors de l’indexation.
"indexedFileNameExtensions" String
liste de valeurs séparées par des virgules
définie par l’utilisateur
Pour les objets blob Azure, sélectionne les objets blob si l’extension de fichier associée se trouve dans la liste. Par exemple, vous pouvez axer l’indexation sur les fichiers d’applications « .docx, .pptx, .msg » pour inclure spécifiquement ces types de fichier.
"failOnUnsupportedContentType" Boolean
true
false (valeur par défaut)
Pour les objets blob Azure, définissez ce paramètre sur false si vous souhaitez poursuivre l’indexation lorsqu’un type de contenu non pris en charge est rencontré et que vous ne connaissez pas tous les types de contenu (extensions de fichier) à l’avance.
"failOnUnprocessableDocument" Boolean
true
false (valeur par défaut)
Pour les objets blob Azure, définissez ce paramètre sur false si vous souhaitez poursuivre l’indexation d’un document en cas d’échec.
"indexStorageMetadataOnly
ForOversizedDocuments"
Boolean true
false (valeur par défaut)
Pour les objets blob Azure, définissez cette propriété sur true pour indexer toujours les métadonnées de stockage d’un contenu d’objet blob trop volumineux à traiter. Par défaut, les objets blob surdimensionnés sont traités comme des erreurs. Pour connaître les limites de taille d’objet blob, consultez Limites de service.
"delimitedTextHeaders" String
liste de valeurs séparées par des virgules
définie par l’utilisateur
Pour les objets blob CSV, spécifie une liste délimitée par des virgules d’en-têtes de colonne, utile pour mapper des champs sources aux champs de destination d’un index.
"delimitedTextDelimiter" String
caractère unique
définie par l’utilisateur
Pour les objets blob CSV, spécifie le délimiteur de fin de ligne pour les fichiers CSV où chaque ligne démarre un nouveau document (par exemple, "|").
"firstLineContainsHeaders" Boolean
true (valeur par défaut)
false
Pour les objets blob CSV, indique que la première ligne (non vide) de chaque objet blob contient des en-têtes.
"documentRoot" String
chemin défini par l’utilisateur
Pour les tableaux JSON, compte tenu d’un document structuré ou semi-structuré, vous pouvez spécifier un chemin d’accès au tableau à l’aide de cette propriété.
"dataToExtract" String
"storageMetadata"
"allMetadata"
"contentAndMetadata" (valeur par défaut)
Pour les objets blob Azure :
Définissez ce paramètre sur "storageMetadata" pour indexer seulement les propriétés d’objets blob standard et les métadonnées spécifiées par l’utilisateur.
Définissez ce paramètre sur "allMetadata" pour extraire les métadonnées fournies par le sous-système de stockage d’objets blob Azure et indexer les métadonnées propres au type de contenu (par exemple, les métadonnées propres aux seuls fichiers .png).
Définissez ce paramètre sur "contentAndMetadata" pour extraire toutes les métadonnées et le contenu textuel de chaque objet blob.

Pour l’analyse d’images dans l’enrichissement par IA, lorsque "imageAction" est défini sur une valeur autre que "none", le "dataToExtract" paramètre indique à l’indexeur les données à extraire du contenu de l’image. S’applique au contenu d’images incorporé dans une application . PDF ou autre, ou à des fichiers image tels que .jpg et .png dans des objets blob Azure.
"imageAction" String
"none"
"generateNormalizedImages"
"generateNormalizedImagePerPage"
Pour les objets blob Azure, définissez ce paramètre sur "none" pour ignorer les images incorporées ou les fichiers image du jeu de données. Il s’agit de la valeur par défaut.

Pour l’analyse d’images dans l’enrichissement par IA, définissez"generateNormalizedImages" sur pour extraire du texte à partir d’images (par exemple, le mot « arrêter » à partir d’un signe d’arrêt du trafic) et l’incorporer dans le champ de contenu. Lors de l’analyse d’images, l’indexeur crée un tableau d’images normalisées dans le cadre du décodage du document et incorpore les informations générées dans le champ de contenu. Cette action nécessite de définir le paramètre "dataToExtract" sur "contentAndMetadata". Une image normalisée fait référence à un traitement supplémentaire qui entraîne une sortie d’image uniforme, dimensionnée et pivotée pour promouvoir un rendu cohérent lorsque vous incluez des images dans les résultats d’une recherche visuelle (par exemple, des photographies de même taille dans un contrôle de graphique comme illustré dans la démonstration JFK). Ces informations sont générées pour chaque image lorsque vous utilisez cette option.

Si vous définissez le paramètre sur "generateNormalizedImagePerPage", les fichiers PDF sont traités différemment. Au lieu d’extraire les images incorporées, chaque page est rendue sous la forme d’une image et normalisée en conséquence. Ce processus par page devrait prendre beaucoup plus de temps que "generateNormalizedImages". Les autres types de fichiers sont traités de la même façon que si "generateNormalizedImages" était défini.

Pour définir la "imageAction" configuration sur n’importe quelle valeur autre "none" que celle-ci, un ensemble de compétences doit également être attaché à cet indexeur et peut être un processus faiblement performant par défaut.
"normalizedImageMaxWidth"
"normalizedImageMaxHeight"
Entier compris entre 50 et 10000 Largeur ou hauteur maximale (en pixels) respectivement pour les images normalisées générées lorsqu’un "imageAction" est défini. La valeur par défaut est 2000.

La valeur par défaut de 2000 pixels pour la hauteur et la largeur maximales des images normalisées est basée sur les tailles maximales prises en charge par la compétence de reconnaissance optique de caractères et la compétence d’analyse d’image. La compétence de reconnaissance optique de caractères (OCR) prend en charge une largeur et une hauteur maximales de 4200 pour les langues autres que l'anglais et de 10000 pour l'anglais. Si vous augmentez les limites maximales, le traitement des images plus volumineuses peut échouer en fonction de la définition de vos compétences et de la langue des documents.
"allowSkillsetToReadFileData" Boolean
true
false (valeur par défaut)
La définition du "allowSkillsetToReadFileData" paramètre sur true crée un chemin d’accès /document/file_data qui est un objet représentant les données de fichier d’origine téléchargées à partir de votre source de données blob. Cela vous permet de transmettre les données de fichier d’origine à une compétence personnalisée pour traitement dans le pipeline d’enrichissement ou à la compétence Extraction de documents. L’objet généré sera défini comme suit : { "$type": "file", "data": "BASE64 encoded string of the file" }

La définition du "allowSkillsetToReadFileData" paramètre sur true nécessite qu’un ensemble de compétences soit attaché à cet indexeur et que le "parsingMode" paramètre soit défini sur "default", "text" ou "json".
"pdfTextRotationAlgorithm" String
"none" (valeur par défaut)
"detectAngles"
La définition du "pdfTextRotationAlgorithm" paramètre sur "detectAngles" peut aider à produire une extraction de texte plus efficace et plus lisible à partir de fichiers PDF qui contiennent du texte pivoté. Notez qu’il peut y avoir une petite pénalité de performances lorsque ce paramètre est utilisé. Ce paramètre s’applique uniquement aux fichiers PDF et uniquement aux fichiers PDF avec du texte incorporé. Si le texte pivoté apparaît dans une image incorporée dans le FICHIER PDF, ce paramètre ne s’applique pas.

La définition du "pdfTextRotationAlgorithm" paramètre sur "detectAngles" nécessite que le "parsingMode" paramètre soit défini sur "default".

Paramètres de configuration Azure Cosmos DB

Les paramètres suivants sont spécifiques aux indexeurs Cosmos DB.

Paramètre Type et valeurs autorisées Utilisation
"assumeOrderByHighWaterMarkColumn" Boolean Pour les indexeurs Cosmos DB avec l’API SQL, définissez ce paramètre pour indiquer à Cosmos DB que la requête utilisée pour retourner des documents à des fins d’indexation est en fait triée par la _ts colonne. La définition de ce paramètre vous donne de meilleurs résultats pour les scénarios d’indexation incrémentielle.

paramètres de configuration Azure SQL

Les paramètres ci-dessous sont propres à Azure SQL Database.

Paramètre Type et valeurs autorisées Usage
"queryTimeout" String
« hh:mm:ss »
« 00:05:00 »
Pour Azure SQL Database, définissez ce paramètre pour augmenter le délai d’expiration au-delà de la valeur par défaut de 5 minutes.
"convertHighWaterMarkToRowVersion" Boolean Définissez ce paramètre sur « true » pour utiliser le type de données rowversion pour la colonne de limite supérieure. Lorsque cette propriété a la valeur true, l’indexeur en soustrait une de la valeur rowversion avant l’exécution de l’indexeur. Cela se fait, car les vues avec des jointures un-à-plusieurs peuvent avoir des lignes avec des valeurs rowversion en double. Soustraire un garantit que la requête de l’indexeur n’ignore pas ces lignes.
"disableOrderByHighWaterMarkColumn" Boolean Définissez ce paramètre sur « true » si vous souhaitez désactiver le comportement ORDER BY dans la requête utilisée pour la détection des modifications. Si vous utilisez la stratégie de détection des changements de point d’eau élevé, l’indexeur utilise les clauses WHERE et ORDER BY pour suivre les lignes nécessitant une indexation (WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column]). Ce paramètre désactive le comportement ORDER BY. L’indexation se terminera plus rapidement, mais le compromis est que si l’indexeur est interrompu pour une raison quelconque, l’ensemble du travail de l’indexeur doit être répété en entier.

response

Pour une requête réussie : « 201 Créé ».

Exemples

Exemple : Indexeur avec des paramètres de planification et génériques

Crée un indexeur qui copie les données de la table référencée par la ordersds source de données vers l’index orders selon une planification qui commence le 1er janvier 2021 UTC et s’exécute toutes les heures. Chaque appel de l'indexeur est réussi si l'indexation n'échoue pas pour plus de 5 éléments par lot, et pour plus de 10 éléments au total.

{
    "name" : "myindexer",  
    "description" : "a cool indexer",  
    "dataSourceName" : "ordersds",  
    "targetIndexName" : "orders",  
    "schedule" : { "interval" : "PT1H", "startTime" : "2021-01-01T00:00:00Z" },  
    "parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 }  
}

Notes

Si un indexeur est défini sur une certaine planification, mais échoue à plusieurs reprises sur le même document chaque fois qu’il s’exécute, l’indexeur commence à s’exécuter à un intervalle moins fréquent (jusqu’à un maximum d’au moins une fois toutes les 24 heures) jusqu’à ce qu’il progresse correctement à nouveau. Si vous pensez avoir résolu le problème qui provoquait le blocage de l’indexeur à un moment donné, vous pouvez effectuer une réinitialisation, suivie d’une exécution à la demande, de l’indexeur, et si cela progresse correctement, l’indexeur revient à son intervalle de planification défini.

Exemple : Indexeur avec des paramètres d’objet blob

Un indexeur peut éventuellement utiliser des paramètres de configuration qui modifient les comportements d’exécution. Les paramètres de configuration sont séparés par des virgules sur la requête de l’indexeur et sont spécifiques à un type de source de données. Les paramètres de configuration suivants fournissent des instructions permettant d’indexer des objets blob.

  {
    "name" : "my-blob-indexer-for-cognitive-search",
    ... other indexer properties
    "parameters" : 
      { 
      "maxFailedItems" : "15", 
      "batchSize" : "100", 
      "configuration" : 
          { 
          "parsingMode" : "json", 
          "indexedFileNameExtensions" : ".json, .jpg, .png",
          "imageAction" : "generateNormalizedImages",
          "dataToExtract" : "contentAndMetadata" ,
          "executionEnvironment": "Standard"
          } 
      }
  }

Exemple : Indexeur avec mappages de champs

Mapper le champ _id d’une table source à un "id" champ dans un index de recherche. Azure AI Search n’autorise pas un nom de champ à commencer par un trait de soulignement. Un mappage de champs peut résoudre les différences de noms. Les noms de champs sources et cibles sont sensibles à la casse. Pour plus d’informations, consultez Mappages et transformations de champs.

"fieldMappings" : [
    { "sourceFieldName" : "_id", "targetFieldName" : "id" },
    { "sourceFieldName" : "_timestamp", "targetFieldName" : "timestamp" }
]

Exemple : Indexeur avec enrichissement par IA

Illustre un enrichissement par IA, indiqué par la référence à et skillsetoutputFieldMappings. Les ensembles de compétences sont des ressources de niveau supérieur, définies séparément. Cet exemple est une abréviation de la définition de l’indexeur dans le didacticiel sur l’enrichissement par IA.

{
  "name":"demoindexer",	
  "dataSourceName" : "demodata",
  "targetIndexName" : "demoindex",
  "skillsetName" : "demoskillset",
  "fieldMappings" : [
    {
        "sourceFieldName" : "content",
        "targetFieldName" : "content"
    }
   ],
  "outputFieldMappings" : 
  [
    {
        "sourceFieldName" : "/document/organizations", 
        "targetFieldName" : "organizations"
    },
  ],
  "parameters":
  {
  	"maxFailedItems":-1,
  	"configuration": 
    {
    "dataToExtract": "contentAndMetadata",
    "imageAction": "generateNormalizedImages"
    }
  }
}

Exemple : Indexeur avec mappages d’ensemble de compétences et de champs de sortie

Dans les scénarios d’enrichissement par IA dans lesquels un ensemble de compétences est lié à un indexeur, vous devez ajouter outputFieldMappings pour associer toute sortie d’une étape d’enrichissement qui fournit du contenu à un champ pouvant faire l’objet d’une recherche dans l’index. est sourceFieldName un nœud dans une arborescence d’enrichissement. Il peut s’agir d’une structure composée créée lors de l’enrichissement à partir de deux champs distincts dans le document source. est targetFieldName un champ dans un index de recherche. Pour plus d’informations, consultez Comment mapper des champs de sortie à partir d’un ensemble de compétences.

"outputFieldMappings" : [
      {
        "sourceFieldName" : "/document/organizations", 
        "targetFieldName" : "organizations"
      },
      {
        "sourceFieldName" : "/document/pages/*/keyPhrases/*", 
        "targetFieldName" : "keyphrases"
      },
      {
          "sourceFieldName": "/document/languageCode",
          "targetFieldName": "language",
          "mappingFunction": null
      }      
  ]

Exemple : clés de chiffrement

Les clés de chiffrement sont des clés gérées par le client utilisées pour un chiffrement supplémentaire. Pour plus d’informations, consultez Chiffrement à l’aide de clés gérées par le client dans Azure Key Vault.

{
    "name" : "myindexer",  
    "description" : "a cool indexer",  
    "dataSourceName" : "ordersds",  
    "targetIndexName" : "orders",  
    "schedule" : { "interval" : "PT1H", "startTime" : "2021-01-01T00:00:00Z" },  
    "parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 },
    "encryptionKey": (optional) { 
      "keyVaultKeyName": "Name of the Azure Key Vault key used for encryption",
      "keyVaultKeyVersion": "Version of the Azure Key Vault key",
      "keyVaultUri": "URI of Azure Key Vault, also referred to as DNS name, that provides the key. An example URI might be https://my-keyvault-name.vault.azure.net",
      "accessCredentials": (optional, only if not using managed system identity) {
        "applicationId": "Microsoft Entra ID application ID that was granted access permissions to your specified Azure Key Vault",
        "applicationSecret": "Authentication key of the registered application)"}
      }
}

Voir aussi