Indexeerfunctie maken (Azure AI Search REST API)

Een indexeerfunctie automatiseert het indexeren van ondersteunde Azure-gegevensbronnen, zoals Azure Storage, Azure SQL Database en Azure Cosmos DB, om er maar een paar te noemen. Indexeerfuncties gebruiken een vooraf gedefinieerde gegevensbron en index om een indexeringspijplijn tot stand te brengen waarmee brongegevens worden geëxtraheerd en geserialiseerd en doorgegeven aan een zoekservice voor gegevensopname. Voor AI-verrijking van afbeeldingen en ongestructureerde tekst kunnen indexeerfuncties ook een vaardighedenset accepteren die AI-verwerking definieert.

Als u een indexeerfunctie maakt, wordt deze toegevoegd aan uw zoekservice en uitgevoerd. Als de aanvraag is geslaagd, wordt de index gevuld met doorzoekbare inhoud uit de gegevensbron.

U kunt POST of PUT gebruiken voor de aanvraag. Voor beide biedt het JSON-document in de aanvraagbody de objectdefinitie.

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

U kunt ook PUT gebruiken en de naam van de indexeerfunctie opgeven op de URI.

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

HTTPS is vereist voor alle serviceaanvragen. Als de indexeerfunctie niet bestaat, wordt deze gemaakt. Als deze al bestaat, wordt deze bijgewerkt naar de nieuwe definitie, maar moet u een aanvraag indexeerfunctie uitvoeren als u de uitvoering van de indexeerfunctie wilt uitvoeren.

De configuratie van de indexeerfunctie is afhankelijk van het type gegevensbron. Voor gegevensplatformspecifieke richtlijnen voor het maken van indexeerfuncties begint u met overzicht van indexeerfuncties, dat de volledige lijst met gerelateerde artikelen bevat.

URI-parameters

Parameter Beschrijving
servicenaam Vereist. Stel deze in op de unieke, door de gebruiker gedefinieerde naam van uw zoekservice.
naam van indexeerfunctie Vereist voor de URI als u PUT gebruikt. De naam moet kleine letters bevatten, beginnen met een letter of cijfer, geen schuine streepjes of punten hebben en minder dan 128 tekens bevatten. de naam moet beginnen met een letter of cijfer, maar de rest van de naam kan een willekeurige letter, cijfer en streepjes bevatten, zolang de streepjes niet opeenvolgend zijn.
api-versie Vereist. Zie API-versies voor een lijst met ondersteunde versies.

Aanvraagheaders

In de volgende tabel worden de vereiste en optionele aanvraagheaders beschreven.

Velden Description
Content-Type Vereist. Stel dit in op application/json
api-key Optioneel als u Azure-rollen gebruikt en er een Bearer-token is opgegeven voor de aanvraag, anders is een sleutel vereist. Create-aanvragen moeten een api-key header bevatten die is ingesteld op uw beheerderssleutel (in plaats van een querysleutel). Zie Verbinding maken met Azure AI Search met behulp van sleutelverificatie voor meer informatie.

Aanvraagbody

Een gegevensbron, index en vaardighedenset maken deel uit van een definitie van een indexeerfunctie , maar elk is een onafhankelijk onderdeel dat in verschillende combinaties kan worden gebruikt. U kunt bijvoorbeeld dezelfde gegevensbron gebruiken met meerdere indexeerfuncties, of dezelfde index met meerdere indexeerfuncties of meerdere indexeerfuncties die naar één index schrijven.

De volgende JSON is een weergave op hoog niveau van de belangrijkste onderdelen van de definitie.

{   
    "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) { }
} 

Aanvraag bevat de volgende eigenschappen:

Eigenschap Beschrijving
naam Vereist. De naam moet kleine letters bevatten, beginnen met een letter of cijfer, geen schuine streepjes of punten hebben en minder dan 128 tekens bevatten. De naam moet beginnen met een letter of cijfer, maar de rest van de naam kan een willekeurige letter, cijfer en streepjes bevatten, zolang de streepjes niet opeenvolgend zijn.
dataSourceName Vereist. Naam van een bestaande gegevensbron. Het bevat vaak eigenschappen die een indexeerfunctie kan gebruiken om de kenmerken van het bronplatform te misbruiken. Als zodanig bepaalt de gegevensbron die u doorgeeft aan de indexeerfunctie de beschikbaarheid van bepaalde eigenschappen en parameters, zoals het filteren van inhoudstypen in Azure-blobs. of querytime-out voor Azure SQL Database.
targetIndexName Vereist. Naam van een bestaand indexschema. Het definieert de verzameling velden met doorzoekbare, filterbare, ophaalbare en andere toeschrijvingen die bepalen hoe het veld wordt gebruikt. Tijdens het indexeren verkent de indexeerfunctie de gegevensbron, scheurt optioneel documenten en extraheert informatie, serialiseert de resultaten naar JSON en indexeert de nettolading op basis van het schema dat voor uw index is gedefinieerd.
skillsetName Vereist voor AI-verrijking. Naam van een bestaande vaardighedenset, één per indexeerfunctie. Net als bij gegevensbronnen en indexen is een vaardighedenset een onafhankelijke definitie die u aan een indexeerfunctie koppelt. U kunt een vaardighedenset met andere indexeerfuncties wijzigen, maar elke indexeerfunctie kan slechts één vaardighedenset tegelijk gebruiken.
schedule Optioneel, maar wordt direct uitgevoerd als dit niet is opgegeven en niet is uitgeschakeld. Een schema bevat interval (vereist) en startTime (optioneel). Zie Een indexeerfunctie plannen voor meer informatie.

interval geeft aan hoe vaak de indexeerfunctie wordt uitgevoerd. Het kleinste toegestane interval is vijf minuten; de langste is één dag. Deze moet worden opgemaakt als een XSD-waarde 'dayTimeDuration' (een beperkte subset van een ISO 8601-duurwaarde ). Het patroon hiervoor is: "P[nD][T[nH][nM]]". Voorbeelden: PT15M voor elke 15 minuten, PT2H voor elke 2 uur.

startTime is een UTC-datum/tijd waarop de indexeerfunctie moet worden uitgevoerd.
Handicap Optioneel. Booleaanse waarde die aangeeft of de indexeerfunctie is uitgeschakeld. Stel deze eigenschap in als u een indexeerfunctiedefinitie wilt maken zonder deze onmiddellijk uit te voeren. Standaard onwaar.
parameters Optioneel. Eigenschappen voor het wijzigen van runtimegedrag.

"batchSize" (geheel getal). Hiermee geeft u het aantal items op dat wordt gelezen uit de gegevensbron en geïndexeerd als één batch om de prestaties te verbeteren. De standaardwaarde is bronspecifiek (1000 voor Azure SQL Database en Azure Cosmos DB, 10 voor Azure Blob Storage).

"maxFailedItems" (geheel getal). Hiermee geeft u het aantal fouten op dat moet worden getolereerd voordat een indexeerfunctieuitvoering als een fout wordt beschouwd. De standaardwaarde is 0. Stel in op -1 als u niet wilt dat er fouten zijn om het indexeringsproces te stoppen. Gebruik Status van de indexeerfunctie ophalen om informatie over mislukte documenten op te halen.

"maxFailedItemsPerBatch" (geheel getal). Hiermee geeft u het aantal fouten op dat in elke batch moet worden getolereerd voordat een indexeerfunctieuitvoering als een fout wordt beschouwd. De standaardwaarde is 0. Stel in op -1 als u niet wilt dat er fouten zijn om het indexeringsproces te stoppen.

"base64EncodeKey" (Booleaanse waarde). Hiermee geeft u op of documentsleutels die ongeldige tekens bevatten, moeten worden gecodeerd.

"configuration". Eigenschappen die variëren op basis van de gegevensbron.

"executionEnvironment" (tekenreeks). Overschrijft de uitvoeringsomgeving die is gekozen door interne systeemprocessen. Het expliciet instellen van de uitvoeringsomgeving Private op is vereist als indexeerfuncties toegang hebben tot externe resources via privé-eindpuntverbindingen. Deze instelling bevindt zich onder "configuration". Voor gegevensopname is deze instelling alleen geldig voor services die zijn ingericht als Basic of Standard (S1, S2, S3). Voor de verwerking van AI-verrijkingsinhoud is deze instelling alleen geldig voor S2 en S3. Geldige waarden zijn niet hoofdlettergevoelig en bestaan uit [null of niet opgegeven], Standard (standaard) of Private.
fieldMappings Optioneel. Hiermee koppelt u expliciet een bronveld aan een doelveld in de zoekindex. Wordt gebruikt wanneer bron- en doelvelden verschillende namen of typen hebben, of wanneer u een functie wilt opgeven. Een fieldMappings sectie bevat sourceFieldName (vereist, een veld in de onderliggende gegevensbron), targetFieldName (vereist, een veld in een index) en een optionele mappingFunction voor coderingsuitvoer. Een lijst met ondersteunde functies en voorbeelden vindt u in veldtoewijzingsfuncties. Zie Veldtoewijzingen en transformaties voor meer algemene informatie.
outputFieldMappings Vereist voor een verrijkingspijplijn. Hiermee wordt uitvoer van een vaardighedenset toegewezen aan een index of projectie. Een outputFieldMappings sectie bevat sourceFieldName (vereist, een knooppunt in een verrijkingsstructuur), targetFieldName (vereist, een veld in een index) en een optionele mappingFunction voor coderingsuitvoer. Een lijst met ondersteunde functies en voorbeelden vindt u in veldtoewijzingsfuncties. Zie Uitvoervelden uit een vaardighedenset toewijzen voor meer algemene informatie.
encryptionKey Optioneel. Wordt gebruikt voor het versleutelen van een indexeerfunctiedefinitie at rest met uw eigen sleutels, beheerd in uw Azure Key Vault. Beschikbaar voor factureerbare zoekservices die zijn gemaakt op of na 01-2019.

Een encryptionKey sectie bevat een door de gebruiker gedefinieerde keyVaultKeyName (vereist), een door het systeem gegenereerde keyVaultKeyVersion (vereist) en een keyVaultUri die de sleutel levert (vereist, ook wel DNS-naam genoemd). Een voorbeeld van een URI kan 'https://my-keyvault-name.vault.azure.net".

U kunt desgewenst opgeven accessCredentials of u geen beheerde systeemidentiteit gebruikt. Eigenschappen van accessCredentials include applicationId (Microsoft Entra ID toepassings-id waaraan toegangsmachtigingen zijn verleend voor uw opgegeven Azure Key Vault) en applicationSecret (verificatiesleutel van de geregistreerde toepassing). Een voorbeeld in de volgende sectie illustreert de syntaxis.

Parameters voor blobconfiguratie

Verschillende parameters zijn exclusief voor een bepaalde indexeerfunctie, zoals Azure Blob-indexering.

Parameter Typ en toegestane waarden Gebruik
"parsingMode" Tekenreeks
"text"
"delimitedText"
"json"
"jsonArray"
"jsonLines"
Voor Azure-blobs stelt u in op text om de indexeringsprestaties voor tekstbestanden zonder opmaak in blobopslag te verbeteren.
Voor CSV-blobs stelt u in op delimitedText wanneer blobs gewone CSV-bestanden zijn.
Voor JSON-blobs stelt u in op json om gestructureerde inhoud te extraheren of om jsonArray afzonderlijke elementen van een matrix te extraheren als afzonderlijke documenten in Azure AI Search. Gebruik jsonLines om afzonderlijke JSON-entiteiten, gescheiden door een nieuwe regel, te extraheren als afzonderlijke documenten in Azure AI Search.
"excludedFileNameExtensions" Tekenreeks
Lijst met door komma's gescheiden
door de gebruiker gedefinieerd
Voor Azure-blobs negeert u alle bestandstypen in de lijst. U kunt bijvoorbeeld '.png, .png .mp4' uitsluiten om deze bestanden over te slaan tijdens het indexeren.
"indexedFileNameExtensions" Tekenreeks
Lijst met door komma's gescheiden
door de gebruiker gedefinieerd
Voor Azure-blobs selecteert u blobs als de bestandsextensie in de lijst voorkomt. U kunt bijvoorbeeld indexering richten op specifieke toepassingsbestanden '.docx, .pptx, .msg' om deze bestandstypen specifiek op te nemen.
"failOnUnsupportedContentType" Booleaans
true
false (standaard)
Voor Azure-blobs stelt u in op false als u wilt doorgaan met indexeren wanneer er een niet-ondersteund inhoudstype wordt aangetroffen en u niet van tevoren alle inhoudstypen (bestandsextensies) kent.
"failOnUnprocessableDocument" Booleaans
true
false (standaard)
Voor Azure-blobs stelt u in op false als u wilt doorgaan met indexeren als het indexeren van een document mislukt.
"indexStorageMetadataOnly
ForOversizedDocuments"
Booleaanse waarde waar
false (standaard)
Voor Azure-blobs stelt u deze eigenschap in op true om nog steeds opslagmetagegevens te indexeren voor blob-inhoud die te groot is om te verwerken. Oversized blobs worden standaard behandeld als fouten. Zie Servicelimieten voor limieten voor blobgrootte.
"delimitedTextHeaders" Tekenreeks
Lijst met door komma's gescheiden
door de gebruiker gedefinieerd
Voor CSV-blobs geeft u een door komma's gescheiden lijst met kolomkoppen op, handig voor het toewijzen van bronvelden aan doelvelden in een index.
"delimitedTextDelimiter" Tekenreeks
één teken
door de gebruiker gedefinieerd
Voor CSV-blobs geeft u het regeleindescheidingsteken op voor CSV-bestanden waarbij elke regel een nieuw document start (bijvoorbeeld "|").
"firstLineContainsHeaders" Booleaans
true (standaard)
onjuist
Voor CSV-blobs geeft aan dat de eerste (niet-lege) regel van elke blob headers bevat.
"documentRoot" Tekenreeks
door de gebruiker gedefinieerd pad
Voor JSON-matrices, op basis van een gestructureerd of semi-gestructureerd document, kunt u met deze eigenschap een pad naar de matrix opgeven.
"dataToExtract" Tekenreeks
"storageMetadata"
"allMetadata"
"contentAndMetadata" (standaard)
Voor Azure-blobs:
Stel in op "storageMetadata" om alleen de standaard-blobeigenschappen en door de gebruiker opgegeven metagegevens te indexeren.
Ingesteld op "allMetadata" om metagegevens te extraheren die worden geleverd door het Azure Blob Storage-subsysteem en de specifieke metagegevens van het inhoudstype (bijvoorbeeld metagegevens die uniek zijn voor alleen .png bestanden) worden geïndexeerd.
Stel in op "contentAndMetadata" om alle metagegevens en tekstinhoud uit elke blob te extraheren.

Voor afbeeldingsanalyse in AI-verrijking, wanneer "imageAction" is ingesteld op een andere waarde dan "none", vertelt de "dataToExtract" instelling de indexeerfunctie welke gegevens moeten worden geëxtraheerd uit afbeeldingsinhoud. Is van toepassing op ingesloten afbeeldingsinhoud in een .PDF of andere toepassing, of afbeeldingsbestanden zoals .jpg en .png, in Azure-blobs.
"imageAction" Tekenreeks
"none"
"generateNormalizedImages"
"generateNormalizedImagePerPage"
Voor Azure-blobs stelt u in op"none" om ingesloten afbeeldingen of afbeeldingsbestanden in de gegevensset te negeren. Dit is de standaardinstelling.

Voor afbeeldingsanalyse in AI-verrijking stelt u in op"generateNormalizedImages" om tekst uit afbeeldingen te extraheren (bijvoorbeeld het woord 'stop' van een verkeersstopteken) en in te sluiten als onderdeel van het inhoudsveld. Tijdens de afbeeldingsanalyse maakt de indexeerfunctie een matrix met genormaliseerde afbeeldingen als onderdeel van het kraken van documenten en wordt de gegenereerde informatie in het inhoudsveld ingesloten. Deze actie vereist dat "dataToExtract" is ingesteld op "contentAndMetadata". Een genormaliseerde afbeelding verwijst naar extra verwerking, wat resulteert in uniforme afbeeldingsuitvoer, met een uniforme grootte en gedraaid om een consistente weergave te bevorderen wanneer u afbeeldingen opneemt in visuele zoekresultaten (bijvoorbeeld foto's van dezelfde grootte in een grafiekbesturingselement zoals te zien is in de JFK-demo). Deze informatie wordt gegenereerd voor elke afbeelding wanneer u deze optie gebruikt.

Als u instelt op "generateNormalizedImagePerPage", worden PDF-bestanden anders behandeld in plaats van ingesloten afbeeldingen te extraheren, wordt elke pagina weergegeven als een afbeelding en dienovereenkomstig genormaliseerd. Dit proces per pagina duurt naar verwachting veel langer dan "generateNormalizedImages". Niet-PDF-bestandstypen worden hetzelfde behandeld als als was "generateNormalizedImages" ingesteld.

Als u de "imageAction" configuratie instelt op een andere waarde dan "none" , moet er ook een vaardighedenset aan die indexeerfunctie worden gekoppeld. Dit proces kan standaard een laag presterend proces zijn.
"normalizedImageMaxWidth"
"normalizedImageMaxHeight"
Een geheel getal tussen 50-10000 De maximale breedte of hoogte (in pixels) respectievelijk voor genormaliseerde afbeeldingen die worden gegenereerd wanneer een "imageAction" is ingesteld. De standaardwaarde is 2000.

De standaardwaarde van 2000 pixels voor de maximale breedte en hoogte van genormaliseerde afbeeldingen is gebaseerd op de maximale grootten die worden ondersteund door de OCR-vaardigheid en de vaardigheid afbeeldingsanalyse. De OCR-vaardigheid ondersteunt een maximale breedte en hoogte van 4200 voor niet-Engelse talen en 10000 voor Engels. Als u de maximumlimieten verhoogt, kan de verwerking van grotere afbeeldingen mislukken, afhankelijk van de definitie van uw vaardighedenset en de taal van de documenten.
"allowSkillsetToReadFileData" Booleaans
true
false (standaard)
Als u de "allowSkillsetToReadFileData" parameter instelt op true , wordt een pad /document/file_data gemaakt dat een object is dat de oorspronkelijke bestandsgegevens vertegenwoordigt die zijn gedownload uit uw blobgegevensbron. Hiermee kunt u de oorspronkelijke bestandsgegevens doorgeven aan een aangepaste vaardigheid voor verwerking binnen de verrijkingspijplijn of aan de vaardigheid Documentextractie. Het gegenereerde object wordt als volgt gedefinieerd: { "$type": "file", "data": "BASE64 encoded string of the file" }

Als u de "allowSkillsetToReadFileData" parameter true instelt op, moet er een vaardighedenset aan die indexeerfunctie worden gekoppeld en moet de "parsingMode" parameter worden ingesteld op "default", "text" of "json".
"pdfTextRotationAlgorithm" Tekenreeks
"none" (standaard)
"detectAngles"
Het instellen van de "pdfTextRotationAlgorithm" parameter op "detectAngles" kan helpen om betere en beter leesbare tekstextractie te produceren uit PDF-bestanden die tekst hebben gedraaid. Houd er rekening mee dat er mogelijk een kleine prestatieboete is wanneer deze parameter wordt gebruikt. Deze parameter is alleen van toepassing op PDF-bestanden en alleen op PDF-bestanden met ingesloten tekst. Als de gedraaide tekst wordt weergegeven in een ingesloten afbeelding in het PDF-bestand, is deze parameter niet van toepassing.

Als u de "pdfTextRotationAlgorithm" parameter instelt op "detectAngles" , moet de "parsingMode" parameter worden ingesteld op "default".

Configuratieparameters voor Azure Cosmos DB

De volgende parameters zijn specifiek voor Cosmos DB-indexeerfuncties.

Parameter Typ en toegestane waarden Gebruik
"assumeOrderByHighWaterMarkColumn" Booleaans Voor Cosmos DB-indexeerfuncties met SQL API stelt u deze parameter in om een hint te geven aan Cosmos DB dat de query die wordt gebruikt om documenten voor indexering te retourneren, in feite is geordend op de _ts kolom. Als u deze parameter instelt, krijgt u betere resultaten voor incrementele indexeringsscenario's.

Azure SQL configuratieparameters

De volgende parameters zijn specifiek voor Azure SQL Database.

Parameter Typ en toegestane waarden Gebruik
"queryTimeout" Tekenreeks
"hh:mm:ss"
"00:05:00"
Voor Azure SQL Database stelt u deze parameter in om de time-out te verhogen tot boven de standaardwaarde van 5 minuten.
"convertHighWaterMarkToRowVersion" Booleaans Stel deze parameter in op 'true' om het gegevenstype rowversion te gebruiken voor de kolom met hoogwatermarkeringen. Wanneer deze eigenschap is ingesteld op true, trekt de indexeerfunctie er een af van de rowversion-waarde voordat de indexeerfunctie wordt uitgevoerd. Dit gebeurt omdat weergaven met een-op-veel-joins rijen met dubbele rowversion-waarden kunnen hebben. Als u er een af trekt, zorgt u ervoor dat de indexeerfunctiequery deze rijen niet mist.
"disableOrderByHighWaterMarkColumn" Booleaans Stel deze parameter in op 'true' als u het ORDER BY-gedrag wilt uitschakelen in de query die wordt gebruikt voor wijzigingsdetectie. Als u het beleid voor wijzigingsdetectie van hoogwatermarkeringen gebruikt, gebruikt de indexeerfunctie WHERE- en ORDER BY-componenten om bij te houden welke rijen moeten worden geïndexeerd (WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column]). Met deze parameter schakelt u het gedrag ORDER BY uit. Indexeren wordt sneller voltooid, maar het nadeel is dat als de indexeerfunctie om welke reden dan ook wordt onderbroken, de volledige indexeerfunctietaak volledig moet worden herhaald.

Antwoord

201 Gemaakt voor een geslaagde aanvraag.

Voorbeelden

Voorbeeld: Indexeerfunctie met schema- en algemene parameters

Hiermee maakt u een indexeerfunctie die gegevens kopieert uit de tabel waarnaar wordt verwezen door de ordersds gegevensbron naar de orders index volgens een schema dat begint op 1 januari 2021 UTC en elk uur wordt uitgevoerd. Elke aanroep van de indexeerfunctie is geslaagd als er niet meer dan vijf items in elke batch kunnen worden geïndexeerd en er in totaal niet meer dan 10 items kunnen worden geïndexeerd.

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

Notitie

Als een indexeerfunctie is ingesteld op een bepaald schema, maar telkens wanneer het document wordt uitgevoerd, herhaaldelijk mislukt op hetzelfde document, wordt de indexeerfunctie minder vaak uitgevoerd (tot een maximum van ten minste één keer per 24 uur) totdat de voortgang opnieuw wordt uitgevoerd. Als u denkt dat u een oplossing hebt gevonden voor het probleem waardoor de indexeerfunctie op een bepaald moment vastliep, kunt u de indexeerfunctie opnieuw instellen, gevolgd door een uitvoering op aanvraag, en als de indexeerfunctie hiermee vooruitgang boekt, wordt het ingestelde schema-interval weer hersteld.

Voorbeeld: Indexeerfunctie met blobparameters

Een indexeerfunctie kan eventueel configuratieparameters gebruiken die runtimegedrag wijzigen. Configuratieparameters worden door komma's gescheiden in de indexeerfunctieaanvraag en zijn specifiek voor een gegevensbrontype. De volgende configuratieparameters bevatten instructies voor het indexeren van blobs.

  {
    "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"
          } 
      }
  }

Voorbeeld: Indexeerfunctie met veldtoewijzingen

Wijs het veld _id van een brontabel toe aan een "id" veld in een zoekindex. Azure AI Search staat niet toe dat een veldnaam begint met een onderstrepingsteken. Een veldtoewijzing kan naamverschillen oplossen. Zowel bron- als doelveldnamen zijn niet hoofdlettergevoelig. Zie Veldtoewijzingen en transformaties voor meer informatie.

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

Voorbeeld: Indexeerfunctie met AI-verrijking

Demonstreert een AI-verrijking, aangegeven door de verwijzing naar een skillset en outputFieldMappings. Vaardighedensets zijn resources op hoog niveau, afzonderlijk gedefinieerd. Dit voorbeeld is een afkorting van de definitie van de indexeerfunctie in de zelfstudie AI-verrijking.

{
  "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"
    }
  }
}

Voorbeeld: Indexeerfunctie met vaardighedenset- en uitvoerveldtoewijzingen

In AI-verrijkingsscenario's waarin een vaardighedenset is gebonden aan een indexeerfunctie, moet u toevoegen outputFieldMappings om uitvoer van een verrijkingsstap die inhoud levert aan een doorzoekbaar veld in de index te koppelen. De sourceFieldName is een knooppunt in een verrijkingsstructuur. Het kan een samengestelde structuur zijn die tijdens de verrijking is gebouwd op basis van twee afzonderlijke velden in het brondocument. De targetFieldName is een veld in een zoekindex. Zie Uitvoervelden van een vaardighedenset toewijzen voor meer informatie.

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

Voorbeeld: Versleutelingssleutels

Versleutelingssleutels zijn door de klant beheerde sleutels die worden gebruikt voor aanvullende versleuteling. Zie Versleuteling met door de klant beheerde sleutels in Azure Key Vault voor meer informatie.

{
    "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)"}
      }
}

Zie ook