Indexer des données à partir de fichiers OneLake et de raccourcis

Note

Recherche Azure AI est disponible via le portail Azure, les API REST et les SDK Azure. Il sous-tend également Foundry IQ, la couche de connaissances managée qui transforme le contenu d’entreprise en bases de connaissances réutilisables et prenant en charge les autorisations pour les agents dans le portail Microsoft Foundry.

Important

Ces fonctionnalités et fonctions prennent en charge les connexions à d’autres services Microsoft et services tiers. L’utilisation de ces services est soumise à leurs conditions respectives et peut entraîner le traitement ou le stockage des données en dehors de la limite de conformité Azure, ainsi que des données entrant dans la limite de conformité Azure.

Il est de votre responsabilité de gérer si vos données circulent en dehors des limites géographiques et de conformité de votre organisation, ainsi que des implications connexes, et que les autorisations, les limites et les approbations appropriées sont provisionnés.

Vous êtes responsable de l’examen et du test des applications que vous créez dans le contexte de vos cas d’usage spécifiques et de prendre toutes les décisions et personnalisations appropriées. Cela inclut l’implémentation de vos propres atténuations d’IA responsables, telles que les métaprompts, les filtres de contenu ou d’autres systèmes de sécurité, et la garantie que vos applications répondent aux normes de qualité, de fiabilité, de sécurité et de fiabilité appropriées. Pour plus d’informations, consultez la note de transparence Recherche Azure AI.

L’indexeur de fichiers OneLake importe du contenu et des métadonnées à partir d’un lakehouse dans Microsoft OneLake et rend le contenu pouvant faire l’objet d’une recherche dans Recherche Azure AI.

Pour configurer et exécuter l’indexeur, vous pouvez utiliser :

Cet article utilise les API REST pour illustrer chaque étape.

Conditions préalables

Limitations

  • Les types de fichiers Parquet (y compris delta parquet) ne sont actuellement pas pris en charge.

  • La suppression de fichiers n’est pas prise en charge pour les raccourcis Amazon S3 et Google Cloud Storage.

  • Cet indexeur ne prend pas en charge le contenu de l’emplacement de la table de l’espace de travail OneLake.

  • Cet indexeur ne prend pas en charge les requêtes SQL. Le query paramètre de la configuration de la source de données spécifie uniquement un dossier ou un raccourci facultatif à indexer.

  • Il n’existe aucune prise en charge de l’ingestion de fichiers à partir de l’espace de travail Mon espace de travail dans OneLake, car il s’agit d’un référentiel personnel par utilisateur.

  • L’indexation des fichiers des éléments Fabric avec des étiquettes de sensibilité, par exemple les lakehouses, n’est pas prise en charge. Toutefois, lorsque des étiquettes de confidentialité sont appliquées directement à des documents individuels, l’ingestion du contenu protégé et des étiquettes associées est prise en charge. Dans ces cas, Recherche Azure AI peut extraire et respecter les étiquettes de confidentialité ainsi que le contenu des documents étiquetés grâce à son intégration à Purview (préversion).

  • Les autorisations basées sur les rôles d’espace de travail dans Microsoft OneLake peuvent affecter l’accès de l’indexeur aux fichiers. Vérifiez que le principal de service Recherche Azure AI (identité managée) dispose des autorisations suffisantes sur les fichiers auxquels vous envisagez d’accéder dans l’espace de travail cible Microsoft Fabric.

Tâches prises en charge

Vous pouvez utiliser cet indexeur pour les tâches suivantes :

  • Indexation des données et indexation incrémentielle : L’indexeur peut indexer des fichiers et des métadonnées associées à partir de chemins de données dans un lakehouse. Il détecte les fichiers et métadonnées nouveaux et mis à jour par le biais de la détection de modifications intégrée. Vous pouvez configurer l’actualisation des données selon une planification ou à la demande.
  • Détection de suppression : L’indexeur peut détecter les suppressions via des métadonnées personnalisées pour la plupart des fichiers et raccourcis. Cela nécessite l’ajout de métadonnées à des fichiers pour indiquer qu’ils ont été « supprimés de manière réversible », ce qui permet leur suppression de l’index de recherche. Actuellement, il n’est pas possible de détecter les suppressions dans les fichiers contextuels Google Cloud Storage ou Amazon S3, car les métadonnées personnalisées ne sont pas prises en charge pour ces sources de données.
  • L’enrichissement par IA appliqué via des ensembles de compétences :Skillsets est entièrement pris en charge par l’indexeur de fichiers OneLake. Cela inclut des fonctionnalités clés telles que la vectorisation intégrée qui ajoute des étapes de segmentation et d’incorporation de données.
  • Modes d’analyse : L’indexeur prend en charge les modes d’analyse JSON si vous souhaitez analyser des tableaux ou des lignes JSON dans des documents de recherche individuels. Il prend également en charge le mode d’analyse Markdown.
  • Compatibilité avec d’autres fonctionnalités : L’indexeur OneLake est conçu pour fonctionner en toute transparence avec d’autres fonctionnalités d’indexeur, telles que les sessions de débogage, le cache d’indexeur pour les enrichissements incrémentiels (préversion) et la base de connaissances.

Formats de document pris en charge

L’indexeur de fichiers OneLake peut extraire du texte des formats de document suivants :

  • CSV (voir Indexation de blobs CSV)
  • EML
  • EPUB
  • GZ
  • HTML
  • JSON (voir Indexation des blobs JSON)
  • KML (XML pour les représentations géographiques)
  • Markdown
  • Microsoft Office formats : DOCX/DOC/DOCM, XLSX/XLSM, PPTX/PPT/PPTM, MSG (e-mails Outlook), XML (2003 et 2006 WORD XML)
  • Formats de document ouverts : ODT, ODS, ODP
  • PDF
  • Fichiers de texte brut (voir également Indexation de texte brut)
  • RTF
  • XML
  • ZIP

Raccourcis pris en charge

Les raccourcis OneLake suivants sont pris en charge par l’indexeur de fichiers OneLake :

Important

L’échec à remplir l’une des conditions préalables, ou la tentative d’une opération couverte par les limitations documentées, entraînera des erreurs lors de l’énumération des éléments dans le lakehouse.

Préparer des données pour l’indexation

Avant de configurer l’indexation, passez en revue vos données sources pour déterminer si vous devez apporter des modifications à vos données dans le lakehouse. Un indexeur peut indexer le contenu d’un conteneur (lakehouse) à la fois. Par défaut, l’indexeur traite tous les fichiers du lakehouse. Pour traiter les fichiers de manière plus sélective, tenez compte des options suivantes :

  • Placez des fichiers dans un dossier virtuel. Une définition de source de données d’indexeur inclut un paramètre « query » qui peut être un sous-dossier lakehouse ou un raccourci. Si cette valeur est spécifiée, seuls ces fichiers du sous-dossier ou du raccourci dans le lakehouse sont indexés.

  • Inclure ou exclure des fichiers par type de fichier. La liste des formats de document pris en charge peut vous aider à déterminer les fichiers à exclure. Par exemple, vous pouvez exclure des fichiers image ou audio qui ne fournissent pas de texte pouvant faire l’objet d’une recherche. Cette fonctionnalité est contrôlée par le biais des paramètres de configuration dans l’indexeur.

  • Inclure ou exclure des fichiers arbitraires. Si vous souhaitez ignorer un fichier spécifique pour une raison quelconque, vous pouvez ajouter des propriétés de métadonnées et des valeurs à des fichiers dans votre lakehouse. Lorsqu’un indexeur rencontre cette propriété, il ignore le fichier ou son contenu dans l’exécution de l’indexation.

L’inclusion et l’exclusion de fichiers sont couvertes à l’étape de configuration de l’indexeur . Si vous ne définissez pas de critères, l’indexeur signale un fichier inéligible en tant qu’erreur et se déplace. Si suffisamment d’erreurs se produisent, le traitement peut s’arrêter. Vous pouvez spécifier la tolérance d’erreur dans les paramètres de configuration de l’indexeur.

Un indexeur crée généralement un document de recherche par fichier, où le contenu texte et les métadonnées sont capturés en tant que champs pouvant faire l’objet d’une recherche dans un index. Si des fichiers sont des fichiers entiers, vous pouvez les analyser dans plusieurs documents de recherche. Par exemple, vous pouvez analyser des lignes dans un fichier CSV pour créer un document de recherche par ligne. Si vous devez segmenter un document unique en passages plus petits pour vectoriser les données, envisagez d’utiliser la vectorisation intégrée.

Indexation des métadonnées de fichier

Les métadonnées de fichier peuvent également être indexées et cela est utile si vous pensez que l’une des propriétés de métadonnées standard ou personnalisées est utile dans les filtres et les requêtes.

Les propriétés de métadonnées spécifiées par l’utilisateur sont extraites en détail. Pour recevoir les valeurs, vous devez définir le champ dans l’index de recherche de type Edm.String, avec le même nom que la clé de métadonnées de l’objet blob. Par exemple, si un objet blob a une clé de métadonnées de Priority avec une valeur de High, vous devez définir un champ nommé Priority dans votre index de recherche, et il se remplira avec la valeur High.

Les propriétés de métadonnées de fichier standard peuvent être extraites dans des champs nommés et typés de la même façon, comme indiqué ci-dessous. L’indexeur de fichiers OneLake crée automatiquement des mappages de champs internes pour ces propriétés de métadonnées, en convertissant le nom de trait d’union d’origine (« metadata-storage-name ») en un nom équivalent souligné (« metadata_storage_name »).

Vous devez toujours ajouter les champs soulignés à la définition d’index, mais vous pouvez omettre les mappages de champs de l’indexeur , car l’indexeur rend automatiquement l’association.

  • metadata_storage_name (Edm.String) : nom de fichier. Par exemple, si vous avez un fichier /mydatalake/my-folder/subfolder/resume.pdf, la valeur de ce champ est resume.pdf.

  • metadata_storage_path (Edm.String) : URI complet de l’objet blob, y compris le compte de stockage. Par exemple, https://myaccount.blob.core.windows.net/my-container/my-folder/subfolder/resume.pdf

  • metadata_storage_content_type (Edm.String) : type de contenu spécifié par le code que vous avez utilisé pour charger l’objet blob. Par exemple, application/octet-stream.

  • metadata_storage_last_modified (Edm.DateTimeOffset) : dernier horodatage modifié pour le blob. Recherche Azure AI utilise cet horodatage pour identifier les objets blob modifiés, afin d’éviter de réindexer tout après l’indexation initiale.

  • metadata_storage_size (Edm.Int64) : taille d’objet blob en octets.

  • metadata_storage_content_md5 (Edm.String) - Hachage MD5 du contenu de l’objet blob, le cas échéant.

Enfin, toutes les propriétés de métadonnées propres au format de document des fichiers que vous indexez peuvent également être représentées dans le schéma d’index. Pour plus d’informations sur les métadonnées spécifiques au contenu, consultez les propriétés des métadonnées de contenu.

Il est important de souligner que vous n’avez pas besoin de définir des champs pour toutes les propriétés ci-dessus dans votre index de recherche. Il vous suffit de capturer les propriétés dont vous avez besoin pour votre application.

Accorder des autorisations

L’indexeur OneLake utilise l’authentification par jeton et l’accès en fonction du rôle pour les connexions à OneLake. Les autorisations sont assignées dans OneLake. Il n’existe aucune exigence d’autorisation sur les magasins de données physiques qui sauvegardent les raccourcis. Par exemple, si vous indexez à partir d’AWS, vous n’avez pas besoin d’accorder des autorisations de service de recherche dans AWS.

L’attribution minimale de rôle pour votre identité de service de recherche est Contributeur.

  1. Configurez une identité système ou gérée par l’utilisateur pour votre service Recherche Azure AI.

    La capture d’écran suivante montre une identité managée système pour un service de recherche nommé « onelake-demo ».

    Screenshot montrant une identité de système de service de recherche dans le portail Azure.

    Cette capture d’écran montre une identité managée par l’utilisateur pour le même service de recherche.

    Screenshot montrant une identité managée affectée par l’utilisateur du service de recherche dans le portail Azure.

  2. Accorder la permission pour l'accès au service de recherche à l'espace de travail Fabric. Le service de recherche établit la connexion pour le compte de l’indexeur.

    Si vous utilisez une identité managée affectée par le système, recherchez le nom du service Recherche Azure AI. Pour une identité gérée attribuée par l'utilisateur, recherchez le nom de la ressource d'identité.

    La capture d’écran suivante montre une attribution de rôle Contributeur à l’aide d’une identité managée système.

    Screenshot montrant une attribution de rôle Contributeur pour une identité de système de service de recherche dans le portail Azure.

    Cette capture d’écran montre une attribution de rôle Contributeur à l’aide d’une identité managée affectée par l’utilisateur :

    Screenshot montrant une attribution de rôle Contributeur pour une identité managée affectée par l’utilisateur du service de recherche dans le portail Azure.

Si votre espace de travail Fabric est sécurisé avec un lien private, Recherche Azure AI ne pourra pas accéder à vos données lakehouse via l'Internet public et vous ne pourrez pas configurer l'indexeur ou ses dépendances requises, telles que la source de données. Pour activer l’accès, vous devez configurer une liaison privée partage entre Recherche Azure AI et votre espace de travail Fabric.

Définir la source de données

Une source de données est définie comme une ressource indépendante afin qu’elle puisse être utilisée par plusieurs indexeurs.

  1. Utilisez l’API REST Créer ou mettre à jour une source de données pour définir sa définition. Il s’agit des étapes les plus importantes de la définition.

  2. Défini "type" sur "onelake" (obligatoire).

  3. Obtenez le GUID de l’espace de travail Microsoft Fabric et le GUID du lakehouse :

    • Dans Power BI, ouvrez la lakehouse à partir de laquelle vous souhaitez importer des données. Notez l’URL lakehouse dans le navigateur. Il doit ressembler à cet exemple : «https://msit.powerbi.com/groups/00000000-0000-0000-0000-000000000000/lakehouses/11111111-1111-1111-1111-111111111111" ;. L’URL contient à la fois le GUID de l’espace de travail et le GUID lakehouse. Si l’espace de travail Fabric est sécurisé avec une liaison privée, l’URL commence par « https://{FabricWorkspaceGuid}.z{xy}.blob.fabric. microsoft.com ».

    • Copiez le GUID de l’espace de travail, qui est répertorié à droite de « groupes » dans l’URL. Dans cet exemple, il s’agit de 00000000-0000-0000-0000-00000000000000000000. Dans votre fichier REST, créez une variable d’environnement pour {FabricWorkspaceGuid} et définissez-la sur le GUID de l’espace de travail. Si votre espace de travail utilise une liaison privée, le GUID de l’espace de travail apparaît dans un autre emplacement dans l’URL. Veillez à référencer la partie correcte de l’URL en fonction de votre configuration.

    Screenshot du GUID de l’espace de travail Fabric dans le Azure portal.

    • Copiez le GUID lakehouse, qui est répertorié juste après « lakehouses » dans l’URL. Dans cet exemple, il serait 11111111-1111-1111-1111-111111111111. Dans votre fichier REST, créez une variable d’environnement pour {LakehouseGuid}et définissez-la sur le GUID lakehouse.

      Capture d'écran du GUID lakehouse dans le portail Azure.

  4. Définissez "credentials" sur le GUID de l’espace de travail Microsoft Fabric en remplaçant {FabricWorkspaceGuid} par la valeur que vous avez copiée à l’étape précédente. Voici le OneLake auquel vous accéderez en utilisant l'identité managée que vous configurerez plus loin dans ce guide.

    "credentials": {  
    "connectionString": "ResourceId={FabricWorkspaceGuid}"  
    }
    

Pour votre configuration avec une liaison privée partagée, configurez les identités managées à l’aide de la chaîne de connexion suivante, qui varie de l’installation utilisant Internet pour la communication. Notez que non seulement l’URL est différente, mais également WorkspaceEndpoint utilisée, au lieu de ResourceId. Prenez cela en compte lors de la configuration de l’identité managée par le système ou des configurations d’identité managée par l’utilisateur.

 "credentials": {  
 "connectionString": "WorkspaceEndpoint=https://{FabricWorkspaceGuid}.z{xy}.blob.fabric.microsoft.com"
 }
  1. Définissez "container.name" le GUID lakehouse, en remplaçant {LakehouseGuid} par la valeur que vous avez copiée à l’étape précédente. Utilisez "query" pour spécifier éventuellement un sous-dossier ou un raccourci de lakehouse.

       "container": {  
         "name": "{LakehouseGuid}",  
         "query": "{optionalLakehouseFolderOrShortcut}"  
       }
    
  2. Définissez la méthode d’authentification à l’aide de l’identité managée affectée par l’utilisateur ou passez à l’étape suivante pour l’identité managée par le système.

    {    
      "name": "{dataSourceName}",  
      "description": "description",  
      "type": "onelake",  
      "credentials": {  
        "connectionString": "ResourceId={FabricWorkspaceGuid}"  
      },  
      "container": {  
        "name": "{LakehouseGuid}",  
        "query": "{optionalLakehouseFolderOrShortcut}"  
      },  
      "identity": {  
        "@odata.type": "Microsoft.Azure.Search.DataUserAssignedIdentity",  
        "userAssignedIdentity": "{userAssignedManagedIdentity}"  
      }  
    }
    

    La userAssignedIdentity valeur est disponible en accédant à la {userAssignedManagedIdentity} ressource, sous Propriétés et appelée Id.

    Capture d’écran de la propriété ID d’identité affectée par l’utilisateur.

    Exemple:

    {    
      "name": "mydatasource",  
      "description": "description",  
      "type": "onelake",  
      "credentials": {  
        "connectionString": "ResourceId=a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"  
      },  
      "container": {  
        "name": "11111111-1111-1111-1111-111111111111",  
        "query": "folder_name"  
      },  
      "identity": {  
        "@odata.type": "Microsoft.Azure.Search.DataUserAssignedIdentity",  
        "userAssignedIdentity": "/subscriptions/333333-3333-3333-3333-33333333/resourcegroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/demo-mi"  
      }  
    }
    
  3. Si vous le souhaitez, utilisez plutôt une identité managée affectée par le système. L'« identité » est supprimée de la définition si vous utilisez l’identité managée affectée par le système.

    {    
      "name": "{dataSourceName}",  
      "description": "description",  
      "type": "onelake",  
      "credentials": {  
        "connectionString": "ResourceId={FabricWorkspaceGuid}"  
      },  
      "container": {  
        "name": "{LakehouseGuid}",  
        "query": "{optionalLakehouseFolderOrShortcut}"  
      }  
    }
    

    Exemple:

    {    
      "name": "mydatasource",  
      "description": "description",  
      "type": "onelake",  
      "credentials": {  
        "connectionString": "ResourceId=a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"  
      },  
      "container": {  
        "name": "11111111-1111-1111-1111-111111111111",  
        "query": "folder_name"  
      }
    } 
    

Détecter les suppressions via des métadonnées personnalisées

La définition de source de données de l’indexeur de fichiers OneLake peut inclure une stratégie de suppression réversible si vous souhaitez que l’indexeur supprime un document de recherche lorsque le document source est marqué pour suppression.

Pour activer la suppression automatique de fichiers, utilisez des métadonnées personnalisées pour indiquer si un document de recherche doit être supprimé de l’index.

Le flux de travail nécessite trois actions distinctes :

  • « Suppression temporaire » du fichier dans OneLake
  • Indexeur supprime le document de recherche dans l’index
  • « Supprimer en dur » le fichier dans OneLake

« Suppression réversible » indique à l’indexeur ce qu’il faut faire (supprimer le document de recherche). Si vous supprimez d’abord le fichier physique dans OneLake, l'indexeur ne peut rien lire et le document de recherche correspondant dans l'index devient orphelin.

Il existe des étapes à suivre dans OneLake et Recherche Azure AI, mais il n’existe aucune autre dépendance de fonctionnalité.

  1. Dans le fichier lakehouse, ajoutez une paire clé-valeur de métadonnées personnalisée au fichier pour indiquer que le fichier est marqué pour suppression. Par exemple, vous pouvez nommer la propriété « IsDeleted », définie sur false. Lorsque vous souhaitez supprimer le fichier, remplacez-le par true.

    Capture d’écran d’un fichier avec des métadonnées personnalisées pour IsDeleted.

  2. Dans Recherche Azure AI, modifiez la définition de source de données pour inclure une propriété « dataDeletionDetectionPolicy ». Par exemple, la stratégie suivante considère qu’un fichier doit être supprimé s’il a une propriété de métadonnées « IsDeleted » avec la valeur true :

    PUT https://[service name].search.windows.net/datasources/file-datasource?api-version=2026-04-01
    {
        "name" : "onelake-datasource",
        "type" : "onelake",
         "credentials": {  
            "connectionString": "ResourceId={FabricWorkspaceGuid}"  
        },  
        "container": {  
            "name": "{LakehouseGuid}",  
            "query": "{optionalLakehouseFolderOrShortcut}"  
        },  
        "dataDeletionDetectionPolicy" : {
            "@odata.type" :"#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
            "softDeleteColumnName" : "IsDeleted",
            "softDeleteMarkerValue" : "true"
        }
    }
    

Une fois l’indexeur exécuté et supprimé le document de l’index de recherche, vous pouvez ensuite supprimer le fichier physique dans le lac de données.

Voici quelques points clés :

  • La planification d’une exécution d’indexeur permet d’automatiser ce processus. Nous vous recommandons de planifier tous les scénarios d’indexation incrémentielle.

  • Si la stratégie de détection de suppression n’a pas été définie lors de la première exécution de l’indexeur, vous devez réinitialiser l’indexeur afin qu’il lit la configuration mise à jour.

  • Rappelez-vous que la détection de suppression n’est pas prise en charge pour les raccourcis Amazon S3 et Google Cloud Storage en raison de la dépendance aux métadonnées personnalisées.

Ajouter des champs de recherche à un index

Dans un index de recherche, ajoutez des champs pour accepter le contenu et les métadonnées de vos fichiers de lac de données OneLake.

  1. Créez ou mettez à jour un index pour définir des champs de recherche qui stockent le contenu et les métadonnées des fichiers :

    {
        "name" : "my-search-index",
        "fields": [
            { "name": "ID", "type": "Edm.String", "key": true, "searchable": false },
            { "name": "content", "type": "Edm.String", "searchable": true, "filterable": false },
            { "name": "metadata_storage_name", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true  },
            { "name": "metadata_storage_size", "type": "Edm.Int64", "searchable": false, "filterable": true, "sortable": true  },
            { "name": "metadata_storage_content_type", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true }     
        ]
    }
    
  2. Créez un champ de clé de document (« clé » : true). Pour le contenu du fichier, les meilleurs candidats sont des propriétés de métadonnées.

    • metadata_storage_path (valeur par défaut) chemin d’accès complet à l’objet ou au fichier. Le champ de clé (« ID » dans cet exemple) est rempli avec des valeurs de metadata_storage_path, car il s’agit de la valeur par défaut.

    • metadata_storage_name, utilisable uniquement si les noms sont uniques. Si vous souhaitez que ce champ soit la clé, déplacez "key": true vers cette définition de champ.

    • Propriété de métadonnées personnalisée que vous ajoutez à vos fichiers. Cette option nécessite que votre processus de chargement de fichiers ajoute cette propriété de métadonnées à tous les objets blob. Étant donné que la clé est une propriété requise, tous les fichiers qui manquent une valeur ne parviennent pas à être indexés. Si vous utilisez une propriété de métadonnées personnalisée comme clé, évitez d’apporter des modifications à cette propriété. Les indexeurs ajoutent des documents en double pour le même fichier si la propriété de clé change.

    Les propriétés de métadonnées incluent souvent des caractères, tels que / et -, qui ne sont pas valides pour les clés de document. Étant donné que l’indexeur a une propriété « base64EncodeKeys » (true par défaut), elle encode automatiquement la propriété de métadonnées, sans configuration ni mappage de champ requis.

  3. Ajoutez un champ « contenu » pour stocker le texte extrait de chaque fichier via la propriété « content » du fichier. Vous n’êtes pas obligé d’utiliser ce nom, mais cela vous permet de tirer parti des mappages de champs implicites.

  4. Ajoutez des champs pour les propriétés de métadonnées standard. L’indexeur peut lire les propriétés de métadonnées personnalisées, les propriétés de métadonnées standard et les propriétés de métadonnées spécifiques au contenu .

Configurer et exécuter l’indexeur de fichiers OneLake

Une fois l’index et la source de données créés, vous êtes prêt à créer l’indexeur. La configuration de l’indexeur spécifie les entrées, les paramètres et les propriétés qui contrôlent les comportements de temps d’exécution. Vous pouvez également spécifier les parties d’un objet blob à indexer.

  1. Créez ou mettez à jour un indexeur en lui donnant un nom et en référençant la source de données et l’index cible :

    {
      "name" : "my-onelake-indexer",
      "dataSourceName" : "my-onelake-datasource",
      "targetIndexName" : "my-search-index",
      "parameters": {
          "batchSize": null,
          "maxFailedItems": null,
          "maxFailedItemsPerBatch": null,
          "base64EncodeKeys": null,
          "configuration": {
              "indexedFileNameExtensions" : ".pdf,.docx",
              "excludedFileNameExtensions" : ".png,.jpeg",
              "dataToExtract": "contentAndMetadata",
              "parsingMode": "default"
          }
      },
      "schedule" : { },
      "fieldMappings" : [ ]
    }
    
  2. Définissez « batchSize » si la valeur par défaut (10 documents) utilise insuffisamment ou surcharge les ressources disponibles. Les tailles de lot par défaut sont spécifiques à la source de données. L’indexation de fichiers définit la taille du lot à 10 documents en reconnaissance de la plus grande taille moyenne du document.

  3. Sous « configuration », contrôlez les fichiers indexés en fonction du type de fichier ou laissez non spécifiés pour récupérer tous les fichiers.

    Pour "indexedFileNameExtensions", fournissez une liste séparée par des virgules d’extensions de fichier (avec un point de début). Faites de même pour "excludedFileNameExtensions" pour indiquer quelles extensions doivent être ignorées. Si la même extension se trouve dans les deux listes, elle est exclue de l’indexation.

  4. Sous « configuration », définissez « dataToExtract » pour contrôler les parties des fichiers indexées :

    • « contentAndMetadata » est la valeur par défaut. Elle spécifie que tous les métadonnées et le contenu textuel extraits du fichier sont indexés.

    • « storageMetadata » spécifie que seules les propriétés de fichier standard et les métadonnées spécifiées par l’utilisateur sont indexées. Bien que les propriétés soient documentées pour les blobs Azure, les propriétés de fichier sont identiques pour OneLake, à l’exception des métadonnées liées au SAS.

    • « allMetadata » spécifie que les propriétés de fichier standard et toutes les métadonnées des types de contenu trouvés sont extraites du contenu du fichier et indexées.

  5. Sous « configuration », définissez « parsingMode » si les fichiers doivent être mappés à plusieurs documents de recherche, ou s’ils se composent de fichierstexte brut, JSON ou CSV.

  6. Spécifiez des mappages de champs s’il existe des différences dans le nom ou le type de champ, ou si vous avez besoin de plusieurs versions d’un champ source dans l’index de recherche.

    Dans l’indexation de fichiers, vous pouvez souvent omettre des mappages de champs, car l’indexeur prend en charge le mappage des propriétés « content » et de métadonnées à des champs nommés et typés de manière similaire dans un index. Pour les propriétés de métadonnées, l’indexeur remplace automatiquement les traits d’union par des - traits de soulignement dans l’index de recherche.

Pour plus d’informations sur les autres propriétés, créez un indexeur. Pour obtenir la liste complète des descriptions de paramètres, consultez Créer un indexeur (REST) dans l’API REST. Les paramètres sont les mêmes pour Microsoft OneLake.

Par défaut, un indexeur s’exécute automatiquement lorsque vous le créez. Vous pouvez modifier ce comportement en définissant « désactivé » sur true. Si vous créez un indexeur dans un état désactivé, exécutez un indexeur à la demande lorsque vous êtes prêt à l’utiliser ou placez-le selon une planification.

Vérifier l’état de l’indexeur

Découvrez plusieurs approches pour surveiller l’état de l’indexeur et l’historique d’exécution ici.

Gérer les erreurs

Les erreurs qui se produisent généralement lors de l’indexation incluent des types de contenu non pris en charge, du contenu manquant ou des fichiers surdimensionnés. Par défaut, l’indexeur de fichiers OneLake s’arrête dès qu’il rencontre un fichier avec un type de contenu non pris en charge. Toutefois, vous pouvez souhaiter que l’indexation continue même si des erreurs se produisent, puis déboguer des documents individuels ultérieurement.

Les erreurs temporaires sont courantes pour les solutions impliquant plusieurs plateformes et produits. Toutefois, si vous maintenez l'indexeur sur un calendrier (par exemple toutes les 5 minutes), l'indexeur devrait être en mesure de corriger ces erreurs lors de l'exécution suivante.

Il existe cinq propriétés d’indexeur qui contrôlent la réponse de l’indexeur lorsque des erreurs se produisent.

{
  "parameters" : { 
    "maxFailedItems" : 10, 
    "maxFailedItemsPerBatch" : 10,
    "configuration" : { 
        "failOnUnsupportedContentType" : false, 
        "failOnUnprocessableDocument" : false,
        "indexStorageMetadataOnlyForOversizedDocuments": false
    }
  }
}
Paramètre Valeurs valides Description
« maxFailedItems » -1, null ou 0, entier positif Poursuivez l’indexation si des erreurs se produisent à un point de traitement, soit lors de l’analyse des objets blob, soit lors de l’ajout de documents à un index. Définissez ces propriétés sur le nombre d’échecs acceptables. Une valeur de -1 permet le traitement, quel que soit le nombre d’erreurs qui se produisent. Sinon, la valeur est un entier positif.
nombreMaximalD'ArticlesÉchouésParLot -1, null ou 0, entier positif Identique à ce qui précède, mais utilisé pour l’indexation par lots.
« failOnUnsupportedContentType » vrai ou faux Si l’indexeur ne parvient pas à déterminer le type de contenu, spécifiez s’il faut continuer ou échouer le travail.
« failOnUnprocessableDocument » vrai ou faux Si l’indexeur ne parvient pas à traiter un document d’un type de contenu sinon pris en charge, spécifiez s’il faut continuer ou arrêter le travail.
« indexStorageMetadataOnlyForOversizedDocuments » vrai ou faux Les objets blob surdimensionnés sont traités comme des erreurs par défaut. Si vous définissez ce paramètre sur true, l’indexeur tente d’indexer ses métadonnées même si le contenu ne peut pas être indexé. Pour connaître les limites de taille d’objet blob, consultez Limites de service.

Étapes suivantes

Passez en revue le fonctionnement de l’Assistant Importation de données et essayez-le pour cet indexeur. Vous pouvez utiliser la vectorisation intégrée pour segmenter et créer des incorporations pour la recherche vectorielle ou hybride à l’aide d’un schéma par défaut.