Creare un indicizzatore (API REST di Ricerca intelligenza artificiale di Azure)

Un indicizzatore automatizza l'indicizzazione da origini dati di Azure supportate, ad esempio Archiviazione di Azure, database Azure SQL e Azure Cosmos DB per citarne alcuni. Gli indicizzatori usano un'origine dati e un indice predefiniti per stabilire una pipeline di indicizzazione che estrae e serializza i dati di origine, passandoli a un servizio di ricerca per l'inserimento dei dati. Per l'arricchimento tramite intelligenza artificiale di immagini e testo non strutturato, gli indicizzatori possono anche accettare un set di competenze che definisce l'elaborazione dell'intelligenza artificiale.

La creazione di un indicizzatore lo aggiunge al servizio di ricerca e lo esegue. Se la richiesta ha esito positivo, l'indice viene popolato con contenuto ricercabile dall'origine dati.

È possibile usare POST o PUT nella richiesta. Per entrambi, il documento JSON nel corpo della richiesta fornisce la definizione dell'oggetto.

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

In alternativa, è possibile usare PUT e specificare il nome dell'indicizzatore nell'URI.

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

Per tutte le richieste del servizio, è necessario usare il protocollo HTTPS. Se l'indicizzatore non esiste, viene creato. Se esiste già, viene aggiornato alla nuova definizione, ma è necessario eseguire una richiesta Esegui indicizzatore se si vuole eseguire l'esecuzione dell'indicizzatore.

La configurazione dell'indicizzatore varia in base al tipo di origine dati. Per indicazioni specifiche della piattaforma sulla creazione di indicizzatori, iniziare dall'articolo Indicizzatori in Ricerca di Azure, che include l'elenco completo degli articoli correlati.

Parametri dell'URI

Parametro Descrizione
nome servizio Obbligatorio. Impostarlo sul nome univoco definito dall'utente del servizio di ricerca.
nome dell'indicizzatore Obbligatorio nell'URI se si usa PUT. Il nome deve essere minuscolo, iniziare con una lettera o un numero, non avere barre o punti e contenere meno di 128 caratteri. il nome deve iniziare con una lettera o un numero, ma il resto del nome può includere qualsiasi lettera, numero e trattino, purché i trattini non siano consecutivi.
api-version Obbligatorio. Per un elenco delle versioni supportate, vedere Versioni API .

Intestazioni richiesta

La tabella seguente descrive le intestazioni della richiesta obbligatorie e facoltative.

Campi Descrizione
Content-Type Obbligatorio. Impostare il valore su application/json
api-key Facoltativo se si usano i ruoli di Azure e viene fornito un token di connessione nella richiesta, in caso contrario è necessaria una chiave. Le richieste di creazione devono includere un'intestazione api-key impostata sulla chiave amministratore anziché su una chiave di query. Per informazioni dettagliate, vedere Connettersi a Ricerca intelligenza artificiale di Azure usando l'autenticazione della chiave .

Corpo della richiesta

Un'origine dati, un indice e un set di competenze fanno parte della definizione di indicizzatore, ma ogni elemento è un componente indipendente che può essere usato in combinazioni diverse. Si potrebbe ad esempio usare la stessa origine dati o lo stesso indice con più indicizzatori oppure più indicizzatori per scrivere in un solo indice.

Il codice JSON seguente è una rappresentazione generale delle parti principali della definizione.

{   
    "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 richiesta contiene le proprietà seguenti:

Proprietà Descrizione
name Obbligatorio. Il nome deve essere minuscolo, iniziare con una lettera o un numero, non avere barre o punti e contenere meno di 128 caratteri. Il nome deve iniziare con una lettera o un numero, ma il resto del nome può includere qualsiasi lettera, numero e trattino, purché i trattini non siano consecutivi.
dataSourceName Obbligatorio. Nome di un'origine dati esistente. Include spesso proprietà che un indicizzatore può usare per sfruttare le caratteristiche della piattaforma di origine. Di conseguenza, l'origine dati passata all'indicizzatore determina la disponibilità di determinate proprietà e parametri, ad esempio il filtro dei tipi di contenuto nei BLOB di Azure. o timeout di query per Azure SQL Database.
targetIndexName Obbligatorio. Nome di uno schema di indice esistente. Definisce la raccolta di campi contenente ricercabili, filtrabili, recuperabili e altre attribuzioni che determinano come viene usato il campo. Durante l'indicizzazione, l'indicizzatore esegue una ricerca per indicizzazione nell'origine dati, facoltativamente converte i documenti e ne estrae le informazioni, serializza i risultati in JSON e indicizza il payload in base allo schema definito per l'indice.
skillsetName Obbligatorio per l'arricchimento tramite intelligenza artificiale. Nome di un set di competenze esistente, uno per ogni indicizzatore. Come per le origini dati e gli indici, un set di competenze è una definizione indipendente collegata a un indicizzatore. È possibile riconfigurare un set di competenze con altri indicizzatori, ma ogni indicizzatore può usare un solo set di competenze alla volta.
schedule Facoltativo, ma viene eseguito una sola volta immediatamente se non specificato e non disabilitato. Una pianificazione contiene interval (obbligatorio) e startTime (facoltativo). Per altre informazioni, vedere Pianificare un indicizzatore.

interval specifica la frequenza con cui viene eseguito l'indicizzatore. L'intervallo minimo consentito è di cinque minuti, quello massimo di un giorno. Il valore deve essere formattato come valore XSD "dayTimeDuration" (un subset limitato di un valore duration ISO 8601 ). Il modello per questo è: "P[nD][T[nH][nM]]". esempi: PT15M per ogni 15 minuti, PT2H per ogni 2 ore.

startTime è un valore datetime UTC all'avvio dell'esecuzione dell'indicizzatore.
disabled facoltativo. Valore booleano che indica se l'indicizzatore è disabilitato. Impostare questa proprietà se si vuole creare una definizione dell'indicizzatore senza eseguirla immediatamente. False per impostazione predefinita.
parametri facoltativo. Proprietà per la modifica del comportamento di runtime.

"batchSize" (integer). Specifica il numero di elementi che vengono letti dall'origine dati e indicizzati in un batch unico per migliorare le prestazioni. Il valore predefinito è specifico dell'origine (1000 per database di Azure SQL e Azure Cosmos DB, 10 per Archiviazione BLOB di Azure).

"maxFailedItems" (integer). Specifica il numero di errori da tollerare prima che un'esecuzione dell'indicizzatore venga considerata un errore. Il valore predefinito è 0. Impostare su -1 se non si vuole che eventuali errori interrompano il processo di indicizzazione. Usare Get Indexer Status (Ottieni stato indicizzatore ) per recuperare informazioni sui documenti non riusciti.

"maxFailedItemsPerBatch" (integer). Specifica il numero di errori da tollerare in ogni batch prima che un'esecuzione dell'indicizzatore venga considerata un errore. Il valore predefinito è 0. Impostare su -1 se non si vuole che eventuali errori interrompano il processo di indicizzazione.

"base64EncodeKey" (Boolean). Specifica se codificare le chiavi del documento che contengono caratteri non validi.

"configuration". Proprietà che variano in base all'origine dati.

"executionEnvironment" (stringa). Esegue l'override dell'ambiente di esecuzione scelto dai processi di sistema interni. È necessario impostare in modo esplicito l'ambiente Private di esecuzione se gli indicizzatori accedono alle risorse esterne sulle connessioni endpoint private. Questa impostazione è in "configuration". Per l'inserimento dei dati, questa impostazione è valida solo per i servizi con provisioning come Basic o Standard (S1, S2, S3). Per l'elaborazione dei contenuti di arricchimento di intelligenza artificiale, questa impostazione è valida solo per S2 e S3. I valori validi sono senza distinzione tra maiuscole e minuscole e sono costituiti da [null o non specificati], Standard (impostazione predefinita) o Private.
fieldMappings facoltativo. Associa in modo esplicito un campo di origine a un campo di destinazione nell'indice di ricerca. Usato quando i campi di origine e destinazione hanno nomi o tipi diversi o quando si vuole specificare una funzione. Una fieldMappings sezione include sourceFieldName (obbligatorio, un campo nell'origine dati sottostante), targetFieldName (obbligatorio, un campo in un indice) e un oggetto facoltativo mappingFunction per l'output di codifica. Un elenco di funzioni e esempi supportati è disponibile nelle funzioni di mapping dei campi. Per altre informazioni generali, vedere Mapping dei campi e trasformazioni.
outputFieldMappings Obbligatorio per una pipeline di arricchimento. Esegue il mapping dell'output da un set di competenze a un indice o a una proiezione. Una outputFieldMappings sezione include sourceFieldName (obbligatoria, un nodo in un albero di arricchimento), targetFieldName (obbligatorio, un campo in un indice) e un oggetto facoltativo mappingFunction per l'output di codifica. Un elenco di funzioni e esempi supportati è disponibile nelle funzioni di mapping dei campi. Per altre informazioni generali, vedere Come eseguire il mapping dei campi di output da un set di competenze.
EncryptionKey facoltativo. Usato per crittografare una definizione dell'indicizzatore inattivi con le proprie chiavi, gestite nell'Key Vault di Azure. Disponibile per i servizi di ricerca fatturabili creati in o dopo il 2019-01-01.

Una encryptionKey sezione contiene un oggetto definito keyVaultKeyName dall'utente (obbligatorio), un sistema generato keyVaultKeyVersion dal sistema (obbligatorio) e una keyVaultUri chiave (richiesta, definita anche come nome DNS). Un URI di esempio potrebbe essere "https://my-keyvault-name.vault.azure.net".

Facoltativamente, è possibile specificare accessCredentials se non si usa un'identità del sistema gestita. Proprietà di inclusione applicationId (Microsoft Entra ID ID applicazione che è stato concesso le autorizzazioni di accesso all'Key Vault di Azure specificato) e applicationSecret (chiave di accessCredentials autenticazione dell'applicazione registrata). Un esempio nella sezione successiva illustra la sintassi.

Parametri di configurazione dei BLOB

Diversi parametri sono esclusivi di un determinato indicizzatore, come nel caso dell'indicizzazione del BLOB di Azure.

Parametro Tipo e valori consentiti Utilizzo
"parsingMode" string
"text"
"delimitedText"
"json"
"jsonArray"
"jsonLines"
Per i BLOB di Azure, impostare su text per migliorare le prestazioni dell'indicizzazione sui file di testo normale nell'archiviazione BLOB.
Per i BLOB CSV, impostare su delimitedText quando i BLOB sono file CSV semplici.
Per i BLOB JSON, impostare su per json estrarre contenuto strutturato o jsonArray per estrarre singoli elementi di una matrice come documenti separati in Ricerca di intelligenza artificiale di Azure. Usare jsonLines per estrarre singole entità JSON, separate da una nuova riga, come documenti separati nella ricerca di intelligenza artificiale di Azure.
"excludedFileNameExtensions" string
elenco delimitato da virgole
definito dall'utente
Per i BLOB di Azure, ignorare qualsiasi tipo di file nell'elenco. Ad esempio, si potrebbe escludere ".png, .png, .mp4" per ignorare questi file durante l'indicizzazione.
"indexedFileNameExtensions" string
elenco delimitato da virgole
definito dall'utente
Per i BLOB di Azure, selezionare i BLOB se l'estensione di file è inclusa nell'elenco. Si potrebbe ad esempio concentrare l'indicizzazione su specifici file dell'applicazione, come ".docx, .pptx, .msg", per includere specificamente questi tipi di file.
"failOnUnsupportedContentType" Boolean
true
false (impostazione predefinita)
Per i BLOB di Azure, impostare su false se si vuole proseguire con l'indicizzazione quando viene rilevato un tipo di contenuto non supportato e non si conoscono tutti i tipi di contenuto (estensioni di file) in anticipo.
"failOnUnprocessableDocument" Boolean
true
false (impostazione predefinita)
Per i BLOB di Azure, impostare su false se si vuole proseguire con l'indicizzazione in caso di errore di indicizzazione di un documento.
"indexStorageMetadataOnly
ForOversizedDocuments"
Valore booleano true
false (impostazione predefinita)
Per i BLOB di Azure, impostare questa proprietà su true per indicizzare ugualmente i metadati di archiviazione per i contenuti dei BLOB troppo grandi da elaborare. I BLOB sovradimensionati vengono gestiti come errori per impostazione predefinita. Per informazioni sulle limitazione delle dimensioni dei BLOB, vedere Limiti del servizio.
"delimitedTextHeaders" string
elenco delimitato da virgole
definito dall'utente
Per i BLOB CSV, specifica un elenco delimitato da virgole di intestazioni di colonna, utile per il mapping dei campi di origine ai campi di destinazione in un indice.
"delimitedTextDelimiter" string
Carattere singolo
definito dall'utente
Per i BLOB CSV, specifica il delimitatore end-of-line per i file CSV in cui ogni riga avvia un nuovo documento, ad esempio "|".
"firstLineContainsHeaders" Boolean
true (impostazione predefinita)
false
Per i BLOB CSV, indica che la prima riga (non vuota) di ogni BLOB contiene intestazioni.
"documentRoot" string
percorso definito dall'utente
Per le matrici JSON, dato un documento strutturato o semistrutturato, è possibile specificare un percorso della matrice usando questa proprietà.
"dataToExtract" string
"storageMetadata"
"allMetadata"
"contentAndMetadata" (impostazione predefinita)
Per i BLOB di Azure:
Impostare su "storageMetadata" per indicizzare solo i metadati specificati dall'utente e le proprietà BLOB standard.
Impostare su "allMetadata" per estrarre i metadati forniti dal sottosistema di archiviazione BLOB di Azure e i metadati specifici del tipo di contenuto (ad esempio i metadati esclusivi dei file PNG) indicizzati.
Impostare su "contentAndMetadata" per estrarre tutti i metadati e il contenuto testuale da ogni BLOB.

Per l'analisi delle immagini nell'arricchimento di intelligenza artificiale, quando "imageAction" viene impostato su un valore diverso "none"da , l'impostazione "dataToExtract" indica all'indicizzatore i dati da estrarre dal contenuto dell'immagine. Si applica al contenuto delle immagini incorporate in un PDF o in un'altra applicazione o ai file di immagine come i file JPG e PNG, nei BLOB di Azure.
"imageAction" string
"none"
"generateNormalizedImages"
"generateNormalizedImagePerPage"
Per i BLOB di Azure, impostare su "none" per ignorare le immagini incorporate o i file di immagine nel set di dati. Questo è il valore predefinito.

Per l'analisi delle immagini nell'arricchimento di intelligenza artificiale, impostare su per"generateNormalizedImages" estrarre testo dalle immagini,ad esempio la parola "stop" da un segno di arresto del traffico e incorporarlo come parte del campo contenuto. Durante l'analisi delle immagini, l'indicizzatore crea una matrice di immagini normalizzate come parte della conversione del documento e incorpora le informazioni generate nel campo del contenuto. Questa azione richiede che "dataToExtract" sia impostato su "contentAndMetadata". Per immagine normalizzata si intende un'elaborazione aggiuntiva che produce un output dell'immagine uniforme, ridimensionato e ruotato per favorire un rendering coerente quando si includono immagini nei risultati della ricerca visiva (ad esempio, fotografie delle stesse dimensioni in un controllo grafico, come illustrato nella demo su JFK). Queste informazioni vengono generate per ogni immagine quando si usa questa opzione.

Se si imposta su "generateNormalizedImagePerPage", i file PDF verranno trattati in modo diverso in quanto invece di estrarre immagini incorporate, ogni pagina verrà eseguita come immagine e normalizzata di conseguenza. Questo processo per pagina richiede molto più tempo di "generateNormalizedImages". I tipi di file non PDF verranno trattati come se "generateNormalizedImages" fosse impostato.

L'impostazione della "imageAction" configurazione su qualsiasi valore diverso da "none" richiede che un set di competenze sia collegato anche a tale indicizzatore e possa essere un processo a prestazioni basse in base alla progettazione.
"normalizedImageMaxWidth"
"normalizedImageMaxHeight"
Qualsiasi intero compreso tra 50-10000 La larghezza massima o l'altezza (in pixel) rispettivamente per le immagini normalizzate generate quando viene impostato un "imageAction" oggetto . Il valore predefinito è 2000.

Il valore predefinito di 2000 pixel per i valori massimi di altezza e larghezza delle immagini normalizzate è basato sulle dimensioni massime supportate dalla competenza OCR e dalla competenza di analisi delle immagini. La competenza OCR supporta una larghezza e un'altezza massima di 4200 per lingue non inglesi e 10000 per l'inglese. Se si aumentano i limiti massimi, l'elaborazione potrebbe non riuscire nelle immagini più grandi a seconda della definizione del set di competenze e della lingua dei documenti.
"allowSkillsetToReadFileData" Boolean
true
false (impostazione predefinita)
Impostando il "allowSkillsetToReadFileData" parametro su true verrà creato un percorso /document/file_data che rappresenta i dati del file originale scaricati dall'origine dati BLOB. In questo modo è possibile passare i dati di file originali a una competenza personalizzata per l'elaborazione all'interno della pipeline di arricchimento o alla competenza Estrazione documenti. L'oggetto generato verrà definito come segue: { "$type": "file", "data": "BASE64 encoded string of the file" }

L'impostazione del "allowSkillsetToReadFileData" parametro su true richiede che un set di competenze sia collegato a tale indicizzatore e che il "parsingMode" parametro sia impostato su "default"o "text""json".
"pdfTextRotationAlgorithm" string
"none" (impostazione predefinita)
"detectAngles"
L'impostazione del "pdfTextRotationAlgorithm" parametro su può aiutare a "detectAngles" produrre un'estrazione di testo migliore e più leggibile dai file PDF che hanno ruotato il testo all'interno di essi. Si noti che potrebbe verificarsi una piccola penalità sulle prestazioni quando questo parametro viene usato. Questo parametro si applica solo ai file PDF e solo ai PDF con testo incorporato. Se il testo ruotato viene visualizzato all'interno di un'immagine incorporata nel PDF, questo parametro non viene applicato.

L'impostazione del "pdfTextRotationAlgorithm" parametro su "detectAngles" richiede che il "parsingMode" parametro sia impostato su "default".

Parametri di configurazione di Azure Cosmos DB

I parametri seguenti sono specifici degli indicizzatori cosmos DB.

Parametro Tipo e valori consentiti Utilizzo
"assumeOrderByHighWaterMarkColumn" Boolean Per gli indicizzatori Cosmos DB con l'API SQL, impostare questo parametro per fornire un suggerimento a Cosmos DB che la query usata per restituire documenti per l'indicizzazione _ts è in effetti ordinata dalla colonna. L'impostazione di questo parametro offre risultati migliori per gli scenari di indicizzazione incrementali.

parametri di configurazione Azure SQL

I parametri seguenti sono specifici del database SQL di Azure.

Parametro Tipo e valori consentiti Utilizzo
"queryTimeout" string
"hh:mm:ss"
"00:05:00"
Per il database SQL di Azure, impostare questo parametro per aumentare il valore di timeout rispetto all'impostazione predefinita di 5 minuti.
"convertHighWaterMarkToRowVersion" Boolean Impostare questo parametro su "true" per usare il tipo di dati rowversion per la colonna del contrassegno dell'acqua elevata. Quando questa proprietà è impostata su true, l'indicizzatore sottrae uno dal valore rowversion prima dell'esecuzione dell'indicizzatore. Ciò avviene perché le visualizzazioni con join uno-a-molti potrebbero avere righe con valori di rowversion duplicati. La sottrazione di una garantisce che la query dell'indicizzatore non perde queste righe.
"disableOrderByHighWaterMarkColumn" Boolean Impostare questo parametro su "true" se si vuole disabilitare il comportamento ORDER BY nella query usata per il rilevamento delle modifiche. Se si usano i criteri di rilevamento delle modifiche del contrassegno di acqua elevata, l'indicizzatore usa le clausole WHERE e ORDER BY per tenere traccia delle righe necessarie per l'indicizzazione (WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column]). Questo parametro disabilita il comportamento ORDER BY. L'indicizzazione termina più velocemente, ma il compromesso è che se l'indicizzatore viene interrotto per qualsiasi motivo, l'intero processo dell'indicizzatore deve essere ripetuto in pieno.

Risposta

Se la richiesta ha esito positivo, viene restituito il codice di stato 201 - Creato.

Esempio

Esempio: Indicizzatore con parametri pianificati e generici

Crea un indicizzatore che copia i dati dalla tabella a cui fa riferimento l'origine dati all'indice ordersdsorders in base a una pianificazione che inizia il 1° gennaio 2021 UTC ed esegue ora. Ogni chiamata all'indicizzatore avrà esito positivo se l'indicizzazione non ha esito negativo per più di 5 elementi in ogni batch e per più di 10 elementi in totale.

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

Nota

Se un indicizzatore è impostato su una determinata pianificazione, ma ripetutamente ha esito negativo sullo stesso documento e nuovamente ogni volta che viene eseguito, l'indicizzatore inizierà a eseguire su un intervallo meno frequente (fino al massimo di almeno una volta ogni 24 ore) fino a quando non esegue nuovamente lo stato di avanzamento. Se si ritiene che sia stato risolto il problema che causava il blocco dell'indicizzatore a un determinato punto, è possibile eseguire una reimpostazione, seguita da un'esecuzione su richiesta, dell'indicizzatore e, se tale operazione ha esito positivo, l'indicizzatore restituirà nuovamente l'intervallo di pianificazione impostato.

Esempio: Indicizzatore con parametri BLOB

Facoltativamente, un indicizzatore può accettare parametri di configurazione che modificano i comportamenti di runtime. I parametri di configurazione sono delimitati da virgole nella richiesta dell'indicizzatore e sono specifici di un tipo di origine dati. I parametri di configurazione seguenti forniscono istruzioni usate per indicizzare i 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"
          } 
      }
  }

Esempio: Indicizzatore con mapping di campi

Eseguire il mapping del campo di una tabella di origine a un campo _id in un "id" indice di ricerca. Ricerca intelligenza artificiale di Azure non consente a un nome di campo di iniziare con un carattere di sottolineatura. Un mapping dei campi può risolvere le discrepanze dei nomi. Per i nomi dei campi di origine e destinazione non viene fatta distinzione tra maiuscole e minuscole. Per altre informazioni, vedere Mapping dei campi e trasformazioni.

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

Esempio: Indicizzatore con arricchimento di intelligenza artificiale

Illustra un arricchimento di intelligenza artificiale, indicato dal riferimento a e skillsetoutputFieldMappings. I set di competenze sono risorse di livello generale, definite separatamente. Questo esempio è un'abbreviazione della definizione dell'indicizzatore nell'esercitazione sull'arricchimento dell'intelligenza artificiale.

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

Esempio: Indicizzatore con set di competenze e mapping dei campi di output

Negli scenari di arricchimento di intelligenza artificiale in cui un set di competenze è associato a un indicizzatore, è necessario aggiungere outputFieldMappings per associare qualsiasi output di un passaggio di arricchimento che fornisce contenuto a un campo ricercabile nell'indice. È sourceFieldName un nodo in un albero di arricchimento. Potrebbe essere una struttura composta compilata durante l'arricchimento da due campi separati nel documento di origine. È targetFieldName un campo in un indice di ricerca. Per altre informazioni, vedere Come eseguire il mapping dei campi di output da un set di competenze.

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

Esempio: Chiavi di crittografia

Le chiavi di crittografia sono chiavi gestite dal cliente usate per una crittografia aggiuntiva. Per altre informazioni, vedere Crittografia con chiavi gestite dal cliente in 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)"}
      }
}

Vedi anche