Creare un indicizzatore (API REST di Azure ricerca cognitiva)Create Indexer (Azure Cognitive Search REST API)

Un indicizzatore consente di automatizzare l'indicizzazione da origini dati di Azure supportate, ad esempio archiviazione di Azure, database SQL di azure e Azure Cosmos DB per citarne alcune.An indexer automates indexing from supported Azure data sources such as Azure Storage, Azure SQL Database, and Azure Cosmos DB to name a few. Gli indicizzatori utilizzano un' origine dati e un Indice predefiniti per stabilire una pipeline di indicizzazione che estrae e serializza i dati di origine e li passa a un servizio di ricerca per l'inserimento dei dati.Indexers use a predefined data source and index to establish an indexing pipeline that extracts and serializes source data, passing it to a search service for data ingestion. Per l'arricchimento dell'intelligenza artificiale di immagini e testo non strutturato, gli indicizzatori possono anche accettare un valore di competenze che definisce l'elaborazione di intelligenza artificiale.For AI enrichment of image and unstructured text, indexers can also accept a skillset that defines AI processing.

La creazione di un indicizzatore lo aggiunge al servizio di ricerca e lo esegue.Creating an indexer adds it to your search service and runs it. Se la richiesta ha esito positivo, l'indice verrà popolato con contenuto ricercabile dall'origine dati.If the request is successful, the index will be populated with searchable content from the data source.

È possibile utilizzare POST o PUT per la richiesta.You can use either POST or PUT on the request. Per uno dei due, il documento JSON nel corpo della richiesta fornisce la definizione dell'oggetto.For either one, the JSON document in the request body provides the object definition.

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.Alternatively, you can use PUT and specify the indexer name on the 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.HTTPS is required for all service requests. Se l'indicizzatore non esiste, viene creato.If the indexer doesn't exist, it is created. Se esiste già, viene aggiornata alla nuova definizione, ma è necessario eseguire una richiesta di esecuzione dell'indicizzatore se si vuole eseguire l'indicizzatore.If it already exists, it is updated to the new definition but you must issue a Run Indexer request if you want indexer execution.

La configurazione dell'indicizzatore varia in base al tipo di origine dati.Indexer configuration varies based on the type of data source. 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.For data-platform-specific guidance on creating indexers, start with Indexers overview, which includes the complete list of related articles.

Parametri dell'URIURI Parameters

ParametroParameter DescrizioneDescription
nome servizioservice name Obbligatorio.Required. Impostare questa impostazione sul nome univoco definito dall'utente del servizio di ricerca.Set this to the unique, user-defined name of your search service.
nome indicizzatoreindexer name Obbligatorio sull'URI se si usa PUT.Required on the URI if using PUT. Il nome deve essere in lettere minuscole, iniziare con una lettera o un numero, non deve contenere barre o punti e deve essere composto da meno di 128 caratteri.The name must be lower case, start with a letter or number, have no slashes or dots, and be less than 128 characters. Dopo aver avviato il nome con una lettera o un numero, il resto del nome può includere qualsiasi lettera, numero e trattino, purché i trattini non siano consecutivi.After starting the name with a letter or number, the rest of the name can include any letter, number and dashes, as long as the dashes are not consecutive.
api-versionapi-version Obbligatorio.Required. La versione corrente è api-version=2020-06-30.The current version is api-version=2020-06-30. Per un elenco delle versioni disponibili, vedere versioni API in Azure ricerca cognitiva .See API versions in Azure Cognitive Search for a list of available versions.

Intestazioni richiestaRequest Headers

La tabella seguente descrive le intestazioni della richiesta obbligatorie e facoltative.The following table describes the required and optional request headers.

CampiFields DescrizioneDescription
Content-TypeContent-Type Obbligatorio.Required. Impostare il valore su application/jsonSet this to application/json
api-keyapi-key Obbligatorio.Required. L'elemento api-key viene usato per autenticare la richiesta nel servizio di ricerca.The api-key is used to authenticate the request to your Search service. È un valore stringa univoco per il servizio.It is a string value, unique to your service. Le richieste di creazione devono includere un' api-key intestazione impostata sulla chiave amministratore, anziché su una chiave di query.Create requests must include an api-key header set to your admin key (as opposed to a query key).

È possibile ottenere api-key dal dashboard del servizio nel portale di Azure.You can get the api-key from your service dashboard in the Azure portal. Per ulteriori informazioni, vedere Find existing Keys.For more information, see Find existing keys.

Corpo della richiestaRequest Body

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.A data source, index, and skillset are part of an indexer definition, but each is an independent component that can be used in different combinations. 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.For example, you could use the same data source with multiple indexers, or the same index with multiple indexers, or multiple indexers writing to a single index.

Il codice JSON seguente è una rappresentazione di alto livello delle parti principali della definizione.The following JSON is a high-level representation of the main parts of the definition.

{   
    "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",
    "schedule" : (optional but runs once immediately if unspecified) { ... },  
    "parameters" : (optional) { ... },  
    "fieldMappings" : (optional) { ... },
    "outputFieldMappings" : (required for AI enrichment) { ... },
    "encryptionKey":(optional) { },
    "disabled" : (optional) Boolean value indicating whether the indexer is disabled. False by default.
}  

La richiesta contiene le proprietà seguenti:Request contains the following properties:

ProprietàProperty DescrizioneDescription
namename Obbligatorio.Required. Il nome deve essere in lettere minuscole, iniziare con una lettera o un numero, non deve contenere barre o punti e deve essere composto da meno di 128 caratteri.The name must be lower case, start with a letter or number, have no slashes or dots, and be less than 128 characters. Dopo aver avviato il nome con una lettera o un numero, il resto del nome può includere qualsiasi lettera, numero e trattino, purché i trattini non siano consecutivi.After starting the name with a letter or number, the rest of the name can include any letter, number and dashes, as long as the dashes are not consecutive.
dataSourceNamedataSourceName Obbligatorio.Required. Nome di un' origine datiesistente.Name of an existing data source. Spesso include proprietà che possono essere usate da un indicizzatore per sfruttare le caratteristiche della piattaforma di origine.It often includes properties that an indexer can use to exploit source platform characteristics. 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.As such, the data source you pass to the indexer determines the availability of certain properties and parameters, such content type filtering in Azure blobs. o timeout query per il database SQL di Azure.or query timeout for Azure SQL Database.
targetIndexNametargetIndexName Obbligatorio.Required. Nome di uno schema di indiceesistente.Name of an existing index schema. Definisce la raccolta di campi che contiene le attribuzioni ricercabili, filtrabili, recuperabili e altre, che determinano la modalità di utilizzo del campo.It defines the fields collection containing searchable, filterable, retrievable, and other attributions that determine how the field is used. 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.During indexing, the indexer crawls the data source, optionally cracks documents and extracts information, serializes the results to JSON, and indexes the payload based on the schema defined for your index.
skillsetNameskillsetName Obbligatorio per l'arricchimento intelligenza artificiale.Required for AI enrichment. Nome di un oggetto di competenzeesistente, uno per indicizzatore.Name of an existing skillset, one per indexer. Come per le origini dati e gli indici, un insieme di competenze è una definizione indipendente che è possibile associare a un indicizzatore.As with data sources and indexes, a skillset is an independent definition that you attach to an indexer. È possibile riconfigurare un set di competenze con altri indicizzatori, ma ogni indicizzatore può usare un solo set di competenze alla volta.You can repurpose a skillset with other indexers, but each indexer can only use one skillset at a time.
scheduleschedule Facoltativo, ma viene eseguito una volta immediatamente se non è specificato e non è disabilitato.Optional, but runs once immediately if unspecified and not disabled. Una pianificazione contiene interval (obbligatorio) e startTime (facoltativo).A schedule contains interval (required) and startTime (optional). Per altre informazioni, vedere pianificare un indicizzatore.For more information, see Schedule an indexer.

interval Specifica la frequenza con cui viene eseguito l'indicizzatore.interval specifies how often the indexer runs. L'intervallo minimo consentito è di cinque minuti, quello massimo di un giorno.The smallest allowed interval is five minutes; the longest is one day. Il valore deve essere formattato come valore XSD "dayTimeDuration" (un subset limitato di un valore duration ISO 8601 ).It must be formatted as an XSD "dayTimeDuration" value (a restricted subset of an ISO 8601 duration value). Il modello è: "P[nD][T[nH][nM]]". Esempi: PT15M per indicare ogni 15 minuti, PT2H per indicare ogni due ore.The pattern for this is: "P[nD][T[nH][nM]]". Examples: PT15M for every 15 minutes, PT2H for every 2 hours.

startTime è un valore DateTime UTC quando l'indicizzatore deve iniziare l'esecuzione.startTime is a UTC datetime when the indexer should start running.
parametriparameters facoltativo.Optional. Proprietà per la modifica del comportamento in fase di esecuzione.Properties for modifying runtime behavior.

"batchSize" (Integer)."batchSize" (integer). Specifica il numero di elementi che vengono letti dall'origine dati e indicizzati in un batch unico per migliorare le prestazioni.Specifies the number of items that are read from the data source and indexed as a single batch in order to improve performance. Il valore predefinito è specifico dell'origine (1000 per il database SQL di Azure e Azure Cosmos DB, 10 per archiviazione BLOB di Azure).Default is source-specific (1000 for Azure SQL Database and Azure Cosmos DB, 10 for Azure Blob Storage).

"maxFailedItems" (Integer)."maxFailedItems" (integer). Specifica il numero di errori da tollerare prima che un'esecuzione dell'indicizzatore venga considerata un errore.Specifies the number of errors to tolerate before an indexer run is considered a failure. Il valore predefinito è 0.Default is 0. Impostare su -1 se non si vuole che eventuali errori interrompano il processo di indicizzazione.Set to -1 if you don’t want any errors to stop the indexing process. Usare Get Indexer status per recuperare informazioni sui documenti non riusciti.Use Get Indexer Status to retrieve information about failed documents.

"maxFailedItemsPerBatch" (Integer)."maxFailedItemsPerBatch" (integer). Specifica il numero di errori da tollerare in ogni batch prima che un'esecuzione dell'indicizzatore venga considerata un errore.Specifies the number of errors to tolerate in each batch before an indexer run is considered a failure. Il valore predefinito è 0.Default is 0. Impostare su -1 se non si vuole che eventuali errori interrompano il processo di indicizzazione.Set to -1 if you don’t want any errors to stop the indexing process.

"executionEnvironment" (String)."executionEnvironment" (string). Esegue l'override dell'ambiente di esecuzione scelto dai processi interni del sistema.Overrides the execution environment chosen by internal system processes. L'impostazione esplicita dell'ambiente di esecuzione su Private è obbligatoria se gli indicizzatori accedono a risorse esterne tramite connessioni a endpoint privati.Explicitly setting the execution environment to Private is required if indexers are accessing external resources over private endpoint connections. Per l'inserimento dei dati, questa impostazione è valida solo per i servizi di cui è stato effettuato il provisioning come Basic o standard (S1, S2, S3).For data ingestion, this setting is valid only for services that are provisioned as Basic or Standard (S1, S2, S3). Per l'elaborazione del contenuto arricchimento intelligenza artificiale, questa impostazione è valida solo per S2 e S3.For AI enrichment content processing, this setting is valid for S2 and S3 only. Questa impostazione si trova nella "configuration" sezione.This setting is located in the "configuration" section. I valori validi non fanno distinzione tra maiuscole e minuscole e sono costituiti da [null o non specificato], Standard (impostazione predefinita) o Private .Valid values are case-insensitive and consist of [null or unspecified], Standard (default), or Private.
fieldMappingsfieldMappings facoltativo.Optional. Associa in modo esplicito un campo di origine a un campo di destinazione nell'indice di ricerca.Explicitly associates a source field to a destination field in search index. Utilizzato quando i campi di origine e di destinazione hanno nomi o tipi diversi o quando si desidera specificare una funzione.Used when source and destination fields have different names or types, or when you want to specify a function. 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 la codifica dell'output.A fieldMappings section includes sourceFieldName (required, a field in the underlying data source), targetFieldName (required, a field in an index), and an optional mappingFunction for encoding output. Un elenco delle funzioni e degli esempi supportati è reperibile in funzioni di mapping dei campi.A list of supported functions and examples can be found at field mapping functions. Per informazioni più generali, vedere mapping dei campi e trasformazioni.For more general information, see Field mappings and transformations.
outputFieldMappingsoutputFieldMappings Obbligatorio per una pipeline di arricchimento.Required for an enrichment pipeline. Esegue il mapping dell'output di un skillt a un indice o a una proiezione.Maps output from a skillset to an index or projection. Una outputFieldMappings sezione include sourceFieldName (obbligatorio, un nodo in un albero di arricchimento), targetFieldName (obbligatorio, un campo in un indice) e un facoltativo mappingFunction per la codifica dell'output.An outputFieldMappings section includes sourceFieldName (required, a node in an enrichment tree), targetFieldName (required, a field in an index), and an optional mappingFunction for encoding output. Un elenco delle funzioni e degli esempi supportati è reperibile in funzioni di mapping dei campi.A list of supported functions and examples can be found at field mapping functions. Per informazioni più generali, vedere come eseguire il mapping dei campi di output da un skillt.For more general information, see How to map output fields from a skillset.
encryptionKeyencryptionKey facoltativo.Optional. Consente di crittografare una definizione di indicizzatore inattiva con chiavi personalizzate, gestite nel Azure Key Vault.Used to encrypt an indexer definition at rest with your own keys, managed in your Azure Key Vault. Disponibile per i servizi di ricerca fatturabili creati il o dopo il 2019-01-01.Available for billable search services created on or after 2019-01-01.

Una encryptionKey sezione contiene un oggetto definito dall'utente keyVaultKeyName (obbligatorio), un sistema keyVaultKeyVersion (obbligatorio) e un oggetto che keyVaultUri fornisce la chiave (obbligatorio, noto anche come nome DNS).An encryptionKey section contains a user-defined keyVaultKeyName (required), a system-generated keyVaultKeyVersion (required), and a keyVaultUri providing the key (required, also referred to as DNS name). Un URI di esempio potrebbe essere " https://my-keyvault-name.vault.azure.net ".An example URI might be "https://my-keyvault-name.vault.azure.net".

Facoltativamente, è possibile specificare accessCredentials se non si utilizza un'identità del sistema gestito.Optionally, you can specify accessCredentials if you are not using a managed system identity. Le proprietà di accessCredentials includono applicationId (Azure Active Directory ID applicazione a cui sono state concesse le autorizzazioni di accesso al Azure Key Vault specificato) e applicationSecret (chiave di autenticazione dell'applicazione Azure ad specificata).Properties of accessCredentials include applicationId (Azure Active Directory Application ID that was granted access permissions to your specified Azure Key Vault), and applicationSecret (authentication key of the specified Azure AD application). Nella sezione successiva viene illustrato un esempio di sintassi.An example in the next section illustrates the syntax.
disableddisabled facoltativo.Optional. Valore booleano che indica se l'indicizzatore è disabilitato.Boolean value indicating whether the indexer is disabled. Impostare questa proprietà se si desidera creare una definizione di indicizzatore senza eseguirla immediatamente.Set this property if you want to create an indexer definition without immediately running it. False per impostazione predefinita.False by default.

Parametri di configurazione dei BLOBBlob configuration parameters

Diversi parametri sono esclusivi di un determinato indicizzatore, come nel caso dell'indicizzazione del BLOB di Azure.Several parameters are exclusive to a particular indexer, such as Azure blob indexing.

ParametroParameter Tipo e valori consentitiType and allowed values UtilizzoUsage
"parsingMode" stringString
"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.For Azure blobs, set to text to improve indexing performance on plain text files in blob storage.
Per i BLOB CSV, impostare su delimitedText quando i BLOB sono file CSV semplici.For CSV blobs, set to delimitedText when blobs are plain CSV files.
Per i BLOB JSON, impostare su json per estrarre il contenuto strutturato o su jsonArray per estrarre singoli elementi di una matrice come documenti distinti in Azure ricerca cognitiva.For JSON blobs, set to json to extract structured content or to jsonArray to extract individual elements of an array as separate documents in Azure Cognitive Search. Usare jsonLines per estrarre singole entità JSON, separate da una nuova riga, come documenti distinti in Azure ricerca cognitiva.Use jsonLines to extract individual JSON entities, separated by a new line, as separate documents in Azure Cognitive Search.
"excludedFileNameExtensions" stringString
elenco delimitato da virgolecomma-delimited list
definito dall'utenteuser-defined
Per i BLOB di Azure, ignorare qualsiasi tipo di file nell'elenco.For Azure blobs, ignore any file types in the list. Ad esempio, si potrebbe escludere ".png, .png, .mp4" per ignorare questi file durante l'indicizzazione.For example, you could exclude ".png, .png, .mp4" to skip over those files during indexing.
"indexedFileNameExtensions" stringString
elenco delimitato da virgolecomma-delimited list
definito dall'utenteuser-defined
Per i BLOB di Azure, selezionare i BLOB se l'estensione di file è inclusa nell'elenco.For Azure blobs, selects blobs if the file extension is in the list. Si potrebbe ad esempio concentrare l'indicizzazione su specifici file dell'applicazione, come ".docx, .pptx, .msg", per includere specificamente questi tipi di file.For example, you could focus indexing on specific application files ".docx, .pptx, .msg" to specifically include those file types.
"failOnUnsupportedContentType" BooleanBoolean
truetrue
false (impostazione predefinita)false (default)
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.For Azure blobs, set to false if you want to continue indexing when an unsupported content type is encountered, and you don't know all the content types (file extensions) in advance.
"failOnUnprocessableDocument" BooleanBoolean
truetrue
false (impostazione predefinita)false (default)
Per i BLOB di Azure, impostare su false se si vuole proseguire con l'indicizzazione in caso di errore di indicizzazione di un documento.For Azure blobs, set to false if you want to continue indexing if a document fails indexing.
"indexStorageMetadataOnly
ForOversizedDocuments"
Valore booleano trueBoolean true
false (impostazione predefinita)false (default)
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.For Azure blobs, set this property to true to still index storage metadata for blob content that is too large to process. I BLOB sovradimensionati vengono gestiti come errori per impostazione predefinita.Oversized blobs are treated as errors by default. Per informazioni sulle limitazione delle dimensioni dei BLOB, vedere Limiti del servizio.For limits on blob size, see Service Limits.
"delimitedTextHeaders" stringString
elenco delimitato da virgolecomma-delimited list
definito dall'utenteuser-defined
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.For CSV blobs, specifies a comma-delimited list of column headers, useful for mapping source fields to destination fields in an index.
"delimitedTextDelimiter" stringString
Carattere singolosingle character
definito dall'utenteuser-defined
Per i BLOB CSV, specifica il delimitatore di fine riga per i file CSV in cui ogni riga avvia un nuovo documento (ad esempio, "|" ).For CSV blobs, specifies the end-of-line delimiter for CSV files where each line starts a new document (for example, "|").
"firstLineContainsHeaders" BooleanBoolean
true (impostazione predefinita)true (default)
falsefalse
Per i BLOB CSVindica che la prima riga (non vuota) di ogni blob contiene le intestazioni.For CSV blobs, indicates that the first (non-blank) line of each blob contains headers.
"documentRoot" stringString
percorso definito dall'utenteuser-defined path
Per le matrici JSON, dato un documento strutturato o semistrutturato, è possibile specificare un percorso della matrice usando questa proprietà.For JSON arrays, given a structured or semi-structured document, you can specify a path to the array using this property.
"dataToExtract" stringString
"storageMetadata"
"allMetadata"
"contentAndMetadata" (impostazione predefinita)"contentAndMetadata" (default)
Per i BLOB di Azure:For Azure blobs:
Impostare su "storageMetadata" per indicizzare solo i metadati specificati dall'utente e le proprietà BLOB standard.Set to "storageMetadata" to index just the standard blob properties and user-specified metadata.
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.Set to "allMetadata" to extract metadata provided by the Azure blob storage subsystem and the content-type specific metadata (for example, metadata unique to just .png files) are indexed.
Impostare su "contentAndMetadata" per estrarre tutti i metadati e il contenuto testuale da ogni BLOB.Set to "contentAndMetadata" to extract all metadata and textual content from each blob.

Per l' analisi delle immagini nell'arricchimento di intelligenza artificiale, quando "imageAction" è impostato su un valore diverso da "none" , l' "dataToExtract" impostazione indica all'indicizzatore quali dati estrarre dal contenuto dell'immagine.For image-analysis in AI enrichment, when "imageAction" is set to a value other than "none", the "dataToExtract" setting tells the indexer which data to extract from image content. 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.Applies to embedded image content in a .PDF or other application, or image files such as .jpg and .png, in Azure blobs.
"imageAction" stringString
"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.For Azure blobs, set to"none" to ignore embedded images or image files in the data set. Questo è il valore predefinito.This is the default.

Per l' analisi delle immagini in arricchimento intelligenza artificiale, impostare su "generateNormalizedImages" per estrarre il testo dalle immagini (ad esempio, la parola "Stop" da un segno di interruzione del traffico) e incorporarla come parte del campo contenuto.For image-analysis in AI enrichment, set to"generateNormalizedImages" to extract text from images (for example, the word "stop" from a traffic Stop sign), and embed it as part of the content field. 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.During image analysis, the indexer creates an array of normalized images as part of document cracking, and embeds the generated information into the content field. Questa azione richiede che "dataToExtract" sia impostato su "contentAndMetadata".This action requires that "dataToExtract" is set to "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).A normalized image refers to additional processing resulting in uniform image output, sized and rotated to promote consistent rendering when you include images in visual search results (for example, same-size photographs in a graph control as seen in the JFK demo). Queste informazioni vengono generate per ogni immagine quando si usa questa opzione.This information is generated for each image when you use this option.

Se si imposta su "generateNormalizedImagePerPage" , i file PDF verranno trattati in modo diverso, anziché estrarre le immagini incorporate, verrà eseguito il rendering di ogni pagina come immagine e normalizzata di conseguenza.If you set to "generateNormalizedImagePerPage", PDF files will be treated differently in that instead of extracting embedded images, each page will be rendered as an image and normalized accordingly. I tipi di file non PDF verranno trattati come se "generateNormalizedImages" fosse stato impostato.Non-PDF file types will be treated the same as if "generateNormalizedImages" was set.

Per impostare la "imageAction" configurazione su un valore diverso da "none" , è necessario associare anche un set di competenze a tale indicizzatore.Setting the "imageAction" configuration to any value other than "none" requires that a skillset also be attached to that indexer.
"allowSkillsetToReadFileData" BooleanBoolean
truetrue
false (impostazione predefinita)false (default)
Impostando il "allowSkillsetToReadFileData" parametro su true verrà creato un percorso /document/file_data che rappresenta un oggetto che rappresenta i dati del file originale scaricati dall'origine dati BLOB.Setting the "allowSkillsetToReadFileData" parameter to true will create a path /document/file_data that is an object representing the original file data downloaded from your blob data source. In questo modo è possibile passare i dati dei file originali a una capacità personalizzata per l'elaborazione all'interno della pipeline di arricchimento o all' abilità di estrazione dei documenti.This allows you to pass the original file data to a custom skill for processing within the enrichment pipeline, or to the Document Extraction skill. L'oggetto generato verrà definito come segue: { "$type": "file", "data": "BASE64 encoded string of the file" }The object generated will be defined as follows: { "$type": "file", "data": "BASE64 encoded string of the file" }

Per impostare il "allowSkillsetToReadFileData" parametro su è true necessario che un set di competenze sia collegato a tale indicizzatore e che il "parsingMode" parametro sia impostato su "default" , "text" o "json" .Setting the "allowSkillsetToReadFileData" parameter to true requires that a skillset be attached to that indexer and that the "parsingMode" parameter is set to "default", "text" or "json".
"pdfTextRotationAlgorithm" stringString
"none" (impostazione predefinita)"none" (default)
"detectAngles"
L'impostazione del "pdfTextRotationAlgorithm" parametro su "detectAngles" può contribuire a produrre un'estrazione del testo migliore e più leggibile da file PDF con testo ruotato al suo interno.Setting the "pdfTextRotationAlgorithm" parameter to "detectAngles" may help produce better and more readable text extraction from PDF files that have rotated text within them. Si noti che è possibile che si verifichi una lieve riduzione della velocità delle prestazioni quando si utilizza questo parametro.Note that there may be a small performance speed impact when this parameter is used. Questo parametro si applica solo ai file PDF e solo a PDF con testo incorporato.This parameter only applies to PDF files, and only to PDFs with embedded text. Se il testo ruotato viene visualizzato all'interno di un'immagine incorporata nel file PDF, questo parametro non è applicabile.If the rotated text appears within an embedded image in the PDF, this parameter does not apply.

Per impostare il "pdfTextRotationAlgorithm" parametro su "detectAngles" è necessario che il "parsingMode" parametro sia impostato su "default" .Setting the "pdfTextRotationAlgorithm" parameter to "detectAngles" requires that the "parsingMode" parameter is set to "default".

Parametri di configurazione di SQL AzureAzure SQL configuration parameters

I parametri seguenti sono specifici del database SQL di Azure.The following parameters are specific to Azure SQL Database.

ParametroParameter Tipo e valori consentitiType and allowed values UtilizzoUsage
"queryTimeout" stringString
"hh:mm:ss""hh:mm:ss"
"00:05:00""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.For Azure SQL Database, set this parameter to increase the timeout beyond the 5-minute default.

RispostaResponse

Se la richiesta ha esito positivo, viene restituito il codice di stato 201 - Creato.201 Created for a successful request.

EsempioExamples

Esempio: indicizzatore con i parametri Schedule e GenericExample: Indexer with schedule and generic parameters

Crea un indicizzatore che copia i dati dalla tabella a cui fa riferimento l' ordersds origine dati all' orders indice in base a una pianificazione che inizia l'1 gennaio 2021 UTC e viene eseguita ogni ora.Creates an indexer that copies data from the table referenced by the ordersds data source to the orders index on a schedule that starts on Jan 1, 2021 UTC and runs hourly. 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.Each indexer invocation will be successful if no more than 5 items fail to be indexed in each batch, and no more than 10 items fail to be indexed in total.

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

Nota

Se un indicizzatore è impostato su una determinata pianificazione ma ha ripetutamente esito negativo sullo stesso documento più volte ogni volta che viene eseguito, l'indicizzatore inizierà a essere eseguito in un intervallo meno frequente (fino al massimo almeno una volta ogni 24 ore) finché non ripeterà correttamente lo stato di avanzamento.If an indexer is set to a certain schedule but repeatedly fails on the same document over and over again each time it runs, the indexer will begin running on a less frequent interval (up to the maximum of at least once every 24 hours) until it successfully makes progress again. Se si ritiene di aver risolto il problema che causava il blocco dell'indicizzatore in un determinato momento, è possibile eseguire una reimpostazione, seguita da un'esecuzione su richiesta, dell'indicizzatore e, se l'operazione ha esito positivo, l'indicizzatore tornerà nuovamente all'intervallo di pianificazione impostato.If you believe you have fixed whatever the issue that was causing the indexer to be stuck at a certain point, you can perform a reset, followed by an on-demand run, of the indexer, and if that successfully makes progress, the indexer will return to its set schedule interval again.

Esempio: indicizzatore con parametri BLOBExample: Indexer with blob parameters

Facoltativamente, un indicizzatore può accettare parametri di configurazione che modificano i comportamenti di runtime.An indexer can optionally take configuration parameters that modify runtime behaviors. I parametri di configurazione sono delimitati da virgole nella richiesta dell'indicizzatore e sono specifici di un tipo di origine dati.Configuration parameters are comma-delimited on the indexer request and are specific to a data source type. I parametri di configurazione seguenti forniscono istruzioni usate per indicizzare i BLOB.The following configuration parameters provide instructions used to index 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"
          } 
      }
  }

Esempio: indicizzatore con mapping dei campiExample: Indexer with field mappings

Eseguire il mapping del campo di una tabella _id di origine a un campo "ID" in un indice di ricerca.Map a source table's field _id to an "id" field in a search index. Azure ricerca cognitiva non consente l'inizio di un nome di campo con un carattere di sottolineatura.Azure Cognitive Search doesn't allow a field name to start with an underscore. Un mapping dei campi può risolvere le discrepanze dei nomi.A field mapping can resolve name discrepancies. Per i nomi dei campi di origine e destinazione non viene fatta distinzione tra maiuscole e minuscole.Both source and target field names are case-insensitive. Per ulteriori informazioni, vedere mapping dei campi e trasformazioni.For more information, see Field mappings and transformations.

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

Esempio: indicizzatore con arricchimento intelligenza artificialeExample: Indexer with AI enrichment

Viene illustrato un arricchimento di intelligenza artificiale, indicato dal riferimento a skillset e outputFieldMappings .Demonstrates an AI enrichment, indicated by the reference to a skillset and outputFieldMappings. I set di competenze sono risorse di livello generale, definite separatamente.Skillsets are high-level resources, defined separately. Questo esempio è un'abbreviazione della definizione dell'indicizzatore nell'esercitazione relativa all' arricchimento di intelligenza artificiale.This example is an abbreviation of the indexer definition in the AI enrichment tutorial.

{
  "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 competenze e mapping dei campi di outputExample: Indexer with skillset and output field mappings

Negli scenari di arricchimento di intelligenza artificiale in cui un skillt è associato a un indicizzatore, è necessario aggiungere outputFieldMappings per associare qualsiasi output di un passaggio di arricchimento che fornisca contenuto a un campo ricercabile nell'indice.In AI enrichment scenarios in which a skillset is bound to an indexer, you must add outputFieldMappings to associate any output of an enrichment step that provides content to a searchable field in the index. sourceFieldNameÈ un nodo in un albero di arricchimento.The sourceFieldName is a node in an enrichment tree. Potrebbe trattarsi di una struttura composta compilata durante l'arricchimento da due campi distinti nel documento di origine.It might be a compound structure built during enrichment from two separate fields in the source document. targetFieldNameÈ un campo in un indice di ricerca.The targetFieldName is a field in a search index. Per ulteriori informazioni, vedere come eseguire il mapping dei campi di output da un skillt.For more information, see How to map output fields from a skillset.

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

Esempio: chiavi di crittografiaExample: Encryption keys

Le chiavi di crittografia sono chiavi gestite dal cliente usate per la crittografia aggiuntiva.Encryption keys are customer-managed keys used for additional encryption. Per altre informazioni, vedere crittografia con chiavi gestite dal cliente in Azure Key Vault.For more information, see Encryption using customer-managed keys 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": "Azure Active Directory Application ID that was granted access permissions to your specified Azure Key Vault",
        "applicationSecret": "Authentication key of the specified Azure AD application)"}
      }
}

Vedi ancheSee also