Partager via


Créer ou mettre à jour l’indexeur (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 (aucune modification).

2021-04-30-Preview ajoute la prise en charge des identités managées pour le cache d’enrichissement et les clés de chiffrement :

  • « storageConnectionString » accepte un ID de ressource pour une connexion d’identité managée affectée par le système au stockage Azure. Cette propriété se trouve sous « cache ». L’identité managée affectée par l’utilisateur n’est pas prise en charge.
  • « identité » accepte une identité managée affectée par l’utilisateur.

2020-06-30-Preview ajoute :

Un indexeur automatise l’indexation à partir de sources de données prises en charge en se connectant à une source de données prédéfinie , en récupérant et sérialisant des données et en la transmettant à un service de recherche pour l’ingestion de données. Pour l’enrichissement par IA du texte image et non structuré, les indexeurs peuvent également accepter un ensemble de compétences qui ajoute le traitement de l’image et du langage naturel.

Vous pouvez utiliser POST ou PUT sur une demande de création. Pour l’une ou l’autre, le corps de la requête fournit la définition d’objet.

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

Pour les demandes de mise à jour, utilisez PUT et spécifiez 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]    

HTTPS est requis pour toutes les demandes 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.

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

Mise à jour d’un indexeur ne l’exécute pas automatiquement, mais en fonction de vos modifications et de la source de données associée, une réinitialisation et une réexécution peuvent être requises. Lorsque vous mettez à jour un indexeur existant, la définition entière est remplacée par le contenu du corps de la requête. En général, le meilleur modèle à utiliser pour les mises à jour consiste à récupérer la définition de l’indexeur avec un GET, à le modifier, puis à le mettre à jour avec PUT.

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

Note

Le nombre maximal d’indexeurs que vous pouvez créer varie selon le niveau tarifaire. Pour plus d’informations, consultez Limites du service pour azure AI Search.

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’indexeur Obligatoire sur l’URI si vous utilisez PUT. Le nom doit être en minuscules, commencer par une lettre ou un nombre, ne comporter aucune barre oblique ni point, et comporter moins de 128 caractères. Une fois que vous avez démarré le nom avec une lettre ou un nombre, 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. 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. Les demandes de création doivent inclure un en-tête api-key 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

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

Le code JSON suivant est une représentation générale des parties principales 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",
    "cache":  { ... },
    "schedule" : (optional but runs once immediately if unspecified) { ... },  
    "parameters" : (optional) {
        "batchSize": null,
        "maxFailedItems": 0,
        "maxFailedItemsPerBatch": 0,
        "base64EncodeKeys": null,
        "configuration": { }
    },
    "fieldMappings" : (optional) { ... },
    "outputFieldMappings" : (required for AI enrichment) { ... },
    "encryptionKey":(optional) { },
    "disabled" : (optional) Boolean value indicating whether the indexer is disabled. False by default.
}  

La requête contient les propriétés suivantes :

Propriété Description
nom Obligatoire. Le nom doit être en minuscules, commencer par une lettre ou un nombre, ne comporter aucune barre oblique ni point, et comporter moins de 128 caractères. Une fois que vous avez démarré le nom avec une lettre ou un nombre, le reste du nom peut inclure n’importe quelle lettre, nombre et tirets, tant que les tirets ne sont pas consécutifs.
description Optionnel. Description de l’indexeur.
dataSourceName Obligatoire. Nom d’une source de données existante qui fournit des informations de connexion et d’autres propriétés.
targetIndexName Obligatoire. Nom d’un index existant.
skillsetName Requis pour l’enrichissement par IA. Nom d’un ensemble de compétences existant.
cache Facultatif pour l’enrichissement par IA, permet la réutilisation de documents inchangés.
planification Facultatif, mais s’exécute une fois immédiatement s’il n’est pas spécifié.
paramètres Optionnel. Propriétés de modification du comportement d’exécution.
fieldMappings Optionnel. Utilisé lorsque les champs source et de destination ont des noms différents.
outputFieldMappings Requis pour l’enrichissement par IA. Mappe la sortie d’un ensemble de compétences à un index ou à une projection.
encryptionKey Optionnel. Permet de chiffrer les données d’indexeur au repos avec vos propres clés, gérées dans votre coffre de clés Azure. Pour plus d’informations, consultez chiffrement Azure AI Search à l’aide de clés gérées par le client dans Azure Key Vault.
handicapé Optionnel. Valeur booléenne indiquant si l’indexeur est désactivé. False par défaut.

Réponse

201 Créé pour une demande réussie.

Exemples

Exemple : indexeur textuel avec planification et de paramètres

Cet exemple crée un indexeur qui copie les données de la table référencée par la source de données order-sds à l’index orders-idx selon une planification qui démarre le 1er janvier 2022 UTC et s’exécute toutes les heures. Chaque appel d’indexeur réussit si plus de 5 éléments ne parviennent pas à être indexés dans chaque lot et qu’il n’y a pas plus de 10 éléments indexés au total. Les mappages de champs fournissent un chemin d’accès aux données lorsque les noms de champs et les types ne correspondent pas.

{
    "name" : "myindexer",  
    "description" : "a cool indexer",  
    "dataSourceName" : "orders-ds",  
    "targetIndexName" : "orders-idx", 
    "fieldMappings" : [
      {
          "sourceFieldName" : "content",
          "targetFieldName" : "sourceContent"
      }
    ], 
    "schedule" : { "interval" : "PT1H", "startTime" : "2022-01-01T00:00:00Z" },  
    "parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 }  
}

exemple : de l’indexeur Skillset

Cet exemple illustre un enrichissement par IA, indiqué par la référence à un ensemble de compétences et outputFieldMappings qui mappent les sorties de compétence aux champs d’un index de recherche. ensembles de compétences sont des ressources de haut niveau, définies séparément.

Nouveautés de cette préversion et applicables aux ensembles de compétences uniquement, vous pouvez spécifier la propriété de cache pour réutiliser les documents qui ne sont pas affectés par les modifications apportées à votre définition d’ensemble de compétences.

{
  "name":"demo-indexer",	
  "dataSourceName" : "demo-data",
  "targetIndexName" : "demo-index",
  "skillsetName" : "demo-skillset",
  "cache" : 
    {
      "storageConnectionString" : "DefaultEndpointsProtocol=https;AccountName=<storage-account-name>;AccountKey=<storage-account-key>;EndpointSuffix=core.windows.net",
      "enableReprocessing": true
    },
  "fieldMappings" : [ ],
  "outputFieldMappings" : 
  [
    {
        "sourceFieldName" : "/document/organizations", 
        "targetFieldName" : "organizations"
    },
  ],
  "parameters":
  {
  	"maxFailedItems":-1,
  	"configuration": 
    {
    "dataToExtract": "contentAndMetadata",
    "imageAction": "generateNormalizedImages"
    }
  }
}

Exemple : Cache d’enrichissement avec une connexion d’identité managée

Cet exemple illustre le format de chaîne de connexion lors de l’utilisation d’Azure Active Directory pour l’authentification. Le service de recherche doit être configuré pour utiliser une identité managée. L’identité doit disposer des autorisations « Contributeur aux données blob du stockage » afin qu’elle puisse écrire dans le cache. La chaîne de connexion est l’ID de ressource unique de votre compte de stockage et doit inclure le conteneur utilisé pour stocker l’enrichissement mis en cache.

{
  "name":"demo-indexer",
  "dataSourceName" : "demodata-ds",
  "targetIndexName" : "demo-index",
  "skillsetName" : "demo-skillset",
  "cache" : 
    {
      "storageConnectionString" : "ResourceId=/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/<container-name>;",
      "enableReprocessing": true
    },
  "fieldMappings" : [  ],
  "outputFieldMappings" :  [  ],
  "parameters": {  }
}

Définitions

Lien Description
cache Configure la mise en cache pour l’enrichissement par IA et l’exécution de l’ensemble de compétences.
encryptionKey Configure une connexion à Azure Key Vault pour le chiffrement géré par le client.
fieldMappings Mappages de champs source à destination pour les champs qui ne correspondent pas par nom et par type.
outputFieldMappings Mappe les nœuds d’un document enrichi aux champs d’un index. Obligatoire si vous utilisez des ensembles de compétences.
paramètres Configure un indexeur. Les paramètres incluent des paramètres généraux et des paramètres spécifiques à la source.
planification Spécifie l’intervalle et la fréquence de l’exécution de l’indexeur planifié.

cache (préversion)

l’indexation incrémentielle est la possibilité de réutiliser des documents enrichis dans le cache lors du traitement d’un ensemble de compétences. Le scénario le plus courant est la réutilisation de l’OCR ou de l’analyse d’images des fichiers image, ce qui peut être coûteux et fastidieux à traiter.

"cache" : 
  {
    "storageConnectionString" : "<YOUR-STORAGE-ACCOUNT-CONNECTION-STRING>",
    "enableReprocessing": true
  }

L’objet cache a des propriétés obligatoires et facultatives.

Propriété Description
storageConnectionString Obligatoire. Spécifie le compte de stockage utilisé pour mettre en cache les résultats intermédiaires. À l’aide du compte que vous fournissez, le service de recherche crée un conteneur d’objets blob précédé de ms-az-search-indexercache et terminé avec un GUID unique à l’indexeur. Il doit être défini sur une chaîne de connexion d’accès complet qui inclut une clé ou l’ID de ressource unique de votre compte de stockage pour les demandes authentifiées à l’aide d’Azure AD.

Pour s’authentifier via Azure AD, le service de recherche doit être configuré pour utiliser une identité managée, et cette identité doit disposer de l’autorisation « Contributeur aux données blob de stockage ».
enableReprocessing Optionnel. Propriété booléenne (true par défaut) pour contrôler le traitement des documents entrants déjà représentés dans le cache. Lorsque true (valeur par défaut), les documents déjà présents dans le cache sont retrachés lorsque vous réexécutez l’indexeur, en supposant que votre mise à jour de compétence affecte ce document. Lorsque false, les documents existants ne sont pas traités, hiérarchisant efficacement le contenu entrant nouveau et entrant sur le contenu existant. Vous devez uniquement définir enableReprocessing sur false de manière temporaire. Pour garantir la cohérence dans le corpus, enableReprocessing doit être true la plupart du temps, en veillant à ce que tous les documents, nouveaux et existants, soient valides conformément à la définition actuelle de l’ensemble de compétences.
ID En lecture seule. Généré une fois le cache créé. L'ID est l’identificateur du conteneur dans le compte de stockage qui sera utilisé comme cache pour cet indexeur. Ce cache sera unique à cet indexeur et si l’indexeur est supprimé et recréé avec le même nom, le ID sera régénéré. Le ID ne peut pas être défini, il est toujours généré par le service.

horaire

Un indexeur peut éventuellement spécifier une planification. Sans planification, l’indexeur s’exécute immédiatement lorsque vous envoyez la requête : connexion, analyse et indexation de la source de données. Pour certains scénarios, notamment les travaux d’indexation à long terme, les planifications sont utilisées pour étendre la fenêtre de traitement au-delà du maximum de 24 heures. Si une planification est présente, l’indexeur s’exécute régulièrement en fonction de la planification. Le planificateur est intégré ; vous ne pouvez pas utiliser un planificateur externe. Une Schedule a les attributs suivants :

  • intervalle: obligatoire. Valeur de durée qui spécifie un intervalle ou une période pour les exécutions d’indexeur. Le plus petit intervalle autorisé est de cinq minutes ; le plus long est un jour. Elle doit être mise en forme sous forme de valeur XSD « dayTimeDuration » (sous-ensemble restreint d’une durée ISO 8601 valeur). Le modèle est le suivant : "P[nD][T[nH][nM]]". Exemples : PT15M toutes les 15 minutes, PT2H toutes les 2 heures.

  • startTime: facultatif. Datetime UTC lorsque l’indexeur doit commencer à s’exécuter.

Note

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 sur un intervalle moins fréquent (jusqu’à au moins une fois toutes les 24 heures) jusqu’à ce qu’il effectue une nouvelle progression. Si vous croyez que vous avez résolu le problème qui entraînait le blocage de l’indexeur à un certain moment, vous pouvez effectuer une exécution à la demande de l’indexeur et, si cela réussit, l’indexeur revient à son intervalle de planification défini.

Paramètres

Un indexeur peut éventuellement prendre des paramètres de configuration qui modifient les comportements d’exécution. Les paramètres de configuration sont délimités par des virgules sur la requête de l’indexeur.

{
  "name" : "my-blob-indexer-for-cognitive-search",
  ... other indexer properties
  "parameters" : { 
        "batchSize": null,
        "maxFailedItems": 0,
        "maxFailedItemsPerBatch": 0,
        "base64EncodeKeys": null,
        "configuration" : { 
            "parsingMode" : "json", 
            "indexedFileNameExtensions" : ".json, .jpg, .png", 
            "imageAction" : "generateNormalizedImages", 
            "dataToExtract" : "contentAndMetadata" } }
}

Paramètres généraux pour tous les indexeurs

Paramètre Types et valeurs autorisées Usage
"batchSize" Entier
La valeur par défaut est spécifique à la source (1000 pour Azure SQL Database et Azure Cosmos DB, 10 pour stockage Blob Azure)
Spécifie le nombre d’éléments lus à partir de la source de données et indexés en tant que lot unique afin d’améliorer les performances.
"maxFailedItems" Entier
La valeur par défaut est 0
Le nombre d’erreurs à tolérer avant l’exécution d’un indexeur est considéré comme un échec. Définissez la valeur -1 si vous ne souhaitez pas que des erreurs arrêtent le processus d’indexation. Vous pouvez récupérer des informations sur les éléments ayant échoué à l’aide de Obtenir l’état de l’indexeur.
"maxFailedItemsPerBatch" Entier
La valeur par défaut est 0
Nombre d’erreurs à tolérer dans chaque lot avant l’exécution d’un indexeur est considéré comme un échec. Définissez la valeur -1 si vous ne souhaitez pas que des erreurs arrêtent le processus d’indexation.
"base64EncodeKeys" Booléen
La valeur par défaut est true
Les valeurs valides sont null, true ou false. Lorsque la valeur est false, l’indexeur n’encode pas automatiquement en base64 les valeurs du champ désigné comme clé de document. La définition de cette propriété élimine la nécessité de spécifier une fonction de mappage qui encode les valeurs de clé en base64 (telles que les tirets) qui ne sont pas valides dans une clé de document.

Paramètres de configuration d’objets blob

Plusieurs paramètres sont exclusifs à un indexeur particulier, tel que 'indexation d’objets blob Azure.

Paramètre Types et valeurs autorisées Usage
"parsingMode" Corde
"text"
"delimitedText"
"json"
"jsonArray"
"jsonLines"
Pour blobs Azure, définissez sur text pour améliorer les performances d’indexation sur les fichiers texte bruts dans le stockage d’objets blob.
Pour blobs CSV, définissez sur delimitedText lorsque les objets blob sont des fichiers CSV bruts.
Pour objets blob JSON, définissez la valeur json pour extraire du contenu structuré ou pour jsonArray pour extraire des éléments individuels d’un tableau en tant que documents distincts dans Recherche IA Azure. Utilisez jsonLines pour extraire des entités JSON individuelles, séparées par une nouvelle ligne, en tant que documents distincts dans Recherche IA Azure.
"excludedFileNameExtensions" Corde
liste délimitée par des virgules
défini par l’utilisateur
Pour blobs Azure, ignorez tous les types de fichiers de la liste. Par exemple, vous pouvez exclure «.png, .png, .mp4» pour ignorer ces fichiers pendant l’indexation.
"indexedFileNameExtensions" Corde
liste délimitée par des virgules
défini par l’utilisateur
Pour blobs Azure, sélectionne les objets blob si l’extension de fichier figure dans la liste. Par exemple, vous pouvez concentrer l’indexation sur des fichiers d’application spécifiques «.docx, .pptx, .msg » pour inclure spécifiquement ces types de fichiers.
"failOnUnsupportedContentType" Booléen
vrai
false (valeur par défaut)
Pour blobs Azure, définissez la valeur false si vous souhaitez continuer 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" Booléen
vrai
false (valeur par défaut)
Pour blobs Azure, définissez la valeur false si vous souhaitez continuer l’indexation en cas d’échec de l’indexation d’un document.
"indexStorageMetadataOnly
ForOversizedDocuments"
Valeur booléenne true
false (valeur par défaut)
Pour blobs Azure, définissez cette propriété sur true pour toujours indexer les métadonnées de stockage pour le contenu d’objet blob trop volumineux à traiter. Les objets blob surdimensionnés sont traités comme des erreurs par défaut. Pour connaître les limites relatives à la taille de l’objet blob, consultez limites de service.
"delimitedTextHeaders" Corde
liste délimitée par des virgules
défini par l’utilisateur
Pour blobs CSV, spécifie une liste délimitée par des virgules d’en-têtes de colonne, utile pour mapper les champs sources aux champs de destination dans un index.
"delimitedTextDelimiter" Corde
caractère unique
défini par l’utilisateur
Pour blobs 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" Booléen
true (valeur par défaut)
faux
Pour blobs CSV, indique que la première ligne (non vide) de chaque objet blob contient des en-têtes.
"documentRoot" Corde
chemin défini par l’utilisateur
Pour tableaux JSON, en fonction 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" Corde
"storageMetadata"
"allMetadata"
"contentAndMetadata" (par défaut)
Pour blobs Azure:
Défini sur "storageMetadata" pour indexer uniquement les propriétés d’objet blob standard et les métadonnées spécifiées par l’utilisateur.
Défini sur "allMetadata" pour extraire les métadonnées fournies par le sous-système de stockage d’objets blob Azure et les métadonnées spécifiques au type de contenu (par exemple, les métadonnées uniques aux fichiers uniquement .png) sont indexées.
Définissez la valeur "contentAndMetadata" pour extraire toutes les métadonnées et le contenu textuel de chaque objet blob.

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

Pour analyse d’images dans l’enrichissement par IA, définissez la valeur"generateNormalizedImages" pour extraire du texte d’images (par exemple, le mot « arrêter » à partir d’un signe d’arrêt du trafic) et l’incorporer dans le cadre du champ de contenu. Pendant l’analyse des images, l’indexeur crée un tableau d’images normalisées dans le cadre du craquage de document et incorpore les informations générées dans le champ de contenu. Cette action nécessite que "dataToExtract" soit défini sur "contentAndMetadata". Une image normalisée fait référence à un traitement supplémentaire résultant d’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 de recherche visuelle (par exemple, des photographies de même taille dans un contrôle de graphe que dans la démonstration JFK ). Ces informations sont générées pour chaque image lorsque vous utilisez cette option.

Si vous définissez sur "generateNormalizedImagePerPage", les fichiers PDF seront traités différemment dans ce cas au lieu d’extraire des images incorporées, chaque page sera rendue en tant qu’image et normalisée en conséquence. Les types de fichiers non PDF sont traités de la même façon que si "generateNormalizedImages" a été défini.

La définition de la configuration "imageAction" sur n’importe quelle valeur autre que "none" nécessite qu’un ensemble de compétences également être attaché à cet indexeur.
"normalizedImageMaxWidth"
"normalizedImageMaxHeight"
Entier compris entre 50 et 10000 Largeur maximale ou hauteur (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 largeur et la hauteur maximales des images normalisées est basée sur les tailles maximales prises en charge par la compétence OCR et la compétence d’analyse d’image . La compétence OCR prend en charge une largeur et une hauteur maximales de 4200 pour les langues autres que l’anglais, et 1 0000 pour l’anglais. Si vous augmentez les limites maximales, le traitement peut échouer sur des images plus volumineuses en fonction de votre définition d’ensemble de compétences et de la langue des documents.
"allowSkillsetToReadFileData" Booléen
vrai
false (valeur par défaut)
La définition du paramètre "allowSkillsetToReadFileData" sur true crée un chemin d’accès /document/file_data objet représentant les données de fichier d’origine téléchargées à partir de votre source de données d’objet blob. Cela vous permet de transmettre les données de fichier d’origine à une compétence personnalisée pour le traitement dans le pipeline d’enrichissement, ou à la compétence d’extraction de documents . L’objet généré est défini comme suit : { "$type": "file", "data": "BASE64 encoded string of the file" }

La définition du paramètre sur nécessite qu’un ensemble de compétences soit attaché à cet indexeur, que le paramètre est défini sur , ou , et que le paramètre est défini sur ou .
"pdfTextRotationAlgorithm" Corde
"none" (par défaut)
"detectAngles"
La définition du paramètre "pdfTextRotationAlgorithm" sur "detectAngles" peut aider à produire une extraction de texte meilleure et plus lisible à partir de fichiers PDF qui ont pivoté du texte dans ces fichiers. Notez qu’il peut y avoir un faible impact sur la vitesse des 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 au format PDF, ce paramètre ne s’applique pas.

La définition du paramètre "pdfTextRotationAlgorithm" sur "detectAngles" nécessite que le paramètre "parsingMode" 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 Types et valeurs autorisées Usage
"assumeOrderByHighWaterMarkColumn" Booléen Pour indexeurs Cosmos DB avec l’API SQL, définissez ce paramètre pour fournir un indicateur à Cosmos DB que la requête utilisée pour retourner des documents pour l’indexation est en fait triée par la colonne _ts. La définition de ce paramètre vous donne de meilleurs résultats pour scénarios d’indexation incrémentielle.

Paramètres de configuration Azure SQL

Les paramètres suivants sont spécifiques à azure SQL Database.

Paramètre Types et valeurs autorisées Usage
"queryTimeout" Corde
« hh :mm :ss »
"00:05:00"
Définissez ce paramètre pour remplacer la valeur par défaut de 5 minutes.
"convertHighWaterMarkToRowVersion" Booléen Définissez ce paramètre sur « true » pour utiliser le type de données rowversion pour la colonne de point d’eau élevée. Lorsque cette propriété a la valeur true, l’indexeur soustrait une de la valeur rowversion avant l’exécution de l’indexeur. Cela est dû au fait que les vues avec des jointures un-à-plusieurs peuvent avoir des lignes avec des valeurs de rowversion dupliquées. La soustraction d’une requête d’indexeur ne manque pas ces lignes.
"disableOrderByHighWaterMarkColumn" Booléen 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 modifications de marque d’eau élevée, l’indexeur utilise des clauses WHERE et ORDER BY pour suivre les lignes qui ont besoin d’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 termine plus rapidement, mais le compromis est que si l’indexeur est interrompu pour une raison quelconque, la tâche entière de l’indexeur doit être répétée en intégralité.

fieldMappings

Créez-les lorsque les noms ou types de champs source-destination ne correspondent pas, ou lorsque vous souhaitez spécifier une fonction. Les mappages de champs ne respectent pas la casse. Consultez Définir des mappages de champs.

Attribut Description
sourceFieldName Obligatoire. Nom de la colonne source.
targetFieldName Obligatoire. Nom du champ correspondant dans l’index de recherche.
mappingFunction Optionnel. Ajoute le traitement aux valeurs sources en route vers le moteur de recherche. Par exemple, une valeur de chaîne arbitraire peut être encodée en base64 afin qu’elle puisse être utilisée pour remplir un champ de clé de document. Une fonction de mappage a un nom et des paramètres. Les valeurs valides sont les suivantes :

base64Encode
base64Decode
extractTokenAtPosition
jsonArrayToStringCollection
urlEncode
urlDecode

outputFieldMappings

Spécifie les sorties de compétence (ou nœuds d’une arborescence d’enrichissement) aux champs d’un index de recherche.

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

encryptionKey

Configure une connexion à Azure Key Vault pour des clés de chiffrement gérées par le client (CMK) supplémentaires. Le chiffrement avec des clés gérées par le client n’est pas disponible pour les services gratuits. Pour les services facturables, il est disponible uniquement pour les services de recherche créés sur ou après 2019-01-01.

Une connexion au coffre de clés doit être authentifiée. Vous pouvez utiliser « accessCredentials » ou une identité managée à cet effet.

Les identités managées peuvent être affectées par le système ou par l’utilisateur (préversion). Si le service de recherche a à la fois une identité managée affectée par le système et une attribution de rôle qui accorde l’accès en lecture au coffre de clés, vous pouvez omettre à la fois « identity » et « accessCredentials », et la demande s’authentifie à l’aide de l’identité managée système. Si le service de recherche a une identité affectée par l’utilisateur et une attribution de rôle, définissez la propriété « identity » sur l’ID de ressource de cette identité.

Attribut Description
keyVaultKeyName Obligatoire. Nom de la clé Azure Key Vault utilisée pour le chiffrement.
keyVaultKeyVersion Obligatoire. Version de la clé Azure Key Vault.
keyVaultUri Obligatoire. URI d’Azure Key Vault (également appelé nom DNS) qui fournit la clé. Un exemple d’URI peut être https://my-keyvault-name.vault.azure.net
accessCredentials Omettez si vous utilisez une identité managée. Dans le cas contraire, les propriétés de accessCredentials incluent applicationId (ID d’application Azure Active Directory disposant des autorisations d’accès à votre coffre de clés Azure spécifié) et applicationSecret (clé d’authentification de l’application Azure AD spécifiée).
identité Facultatif, sauf si vous utilisez une identité managée affectée par l’utilisateur pour la connexion de service de recherche à Azure Key Vault. Le format est "/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.ManagedIdentity/userAssignedIdentities/[managed identity name]".

Voir aussi