Indicizzazione di BLOB CSV con l'indicizzatore di BLOB di Ricerca di AzureIndexing CSV blobs with Azure Search blob indexer

Per impostazione predefinita, l' indicizzatore di BLOB di Ricerca di Azure analizza i BLOB di testo delimitato come blocco singolo di testo.By default, Azure Search blob indexer parses delimited text blobs as a single chunk of text. Nel caso dei BLOB che contengono dati, tuttavia, è spesso consigliabile gestire ogni riga del BLOB come documento separato.However, with blobs containing CSV data, you often want to treat each line in the blob as a separate document. Ad esempio, in base al testo delimitato seguente, si potrebbe decidere di analizzarlo in due documenti, ciascuno contenente campi "id", "datePublished" e "tag":For example, given the following delimited text, you might want to parse it into two documents, each containing "id", "datePublished", and "tags" fields:

id, datePublished, tags
1, 2016-01-12, "azure-search,azure,cloud" 
2, 2016-07-07, "cloud,mobile" 

In questo articolo verrà illustrato come analizzare i BLOB CSV con un indicizzatore di BLOB di Ricerca di Azure.In this article, you will learn how to parse CSV blobs with an Azure Search blob indexer.

Importante

Questa funzionalità è attualmente in anteprima pubblica e non deve essere usata negli ambienti di produzione.This functionality is currently in public preview and should not be used in production environments. Per altre informazioni, vedere REST api-version=2017-11-11-Preview.For more information, see REST api-version=2017-11-11-Preview.

Configurazione dell'indicizzazione di CSVSetting up CSV indexing

Per indicizzare BLOB CSV, creare o aggiornare la definizione di un indicizzatore con la modalità di analisi delimitedText :To index CSV blobs, create or update an indexer definition with the delimitedText parsing mode:

{
  "name" : "my-csv-indexer",
  ... other indexer properties
  "parameters" : { "configuration" : { "parsingMode" : "delimitedText", "firstLineContainsHeaders" : true } }
}

Per altre informazioni sull'API di creazione di un indicizzatore, vedere Creare un indicizzatore.For more details on the Create Indexer API, check out Create Indexer.

firstLineContainsHeaders indica che la prima riga (non vuota) di ogni BLOB contiene un'intestazione.firstLineContainsHeaders indicates that the first (non-blank) line of each blob contains headers. Se i BLOB non contengono una riga di intestazione iniziale, è necessario specificare le intestazioni nella configurazione dell'indicizzatore:If blobs don't contain an initial header line, the headers should be specified in the indexer configuration:

"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } } 

È possibile personalizzare il carattere di delimitazione usando l'impostazione di configurazione delimitedTextDelimiter.You can customize the delimiter character using the delimitedTextDelimiter configuration setting. Ad esempio: For example:

"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextDelimiter" : "|" } }

Nota

È attualmente supportata solo la codifica UTF-8.Currently, only the UTF-8 encoding is supported. Se è necessario il supporto per altre codifiche, votare su UserVoice.If you need support for other encodings, vote for it on UserVoice.

Importante

Quando si usa la modalità di analisi di testo delimitato, Ricerca di Azure presuppone che tutti i BLOB nell'origine dati siano di tipo CSV.When you use the delimited text parsing mode, Azure Search assumes that all blobs in your data source will be CSV. Se è necessario supportare una combinazione di BLOB di tipo CSV e non CSV nella stessa origine dati, votare su UserVoice.If you need to support a mix of CSV and non-CSV blobs in the same data source, please vote for it on UserVoice.

Esempi di richiestaRequest examples

Per concludere, ecco gli esempi completi del payload.Putting this all together, here are the complete payload examples.

Origine dati:Datasource:

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

{
    "name" : "my-blob-datasource",
    "type" : "azureblob",
    "credentials" : { "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account key>;" },
    "container" : { "name" : "my-container", "query" : "<optional, my-folder>" }
}   

Indicizzatore:Indexer:

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

{
  "name" : "my-csv-indexer",
  "dataSourceName" : "my-blob-datasource",
  "targetIndexName" : "my-target-index",
  "parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
}

Come contribuire al miglioramento di Ricerca di AzureHelp us make Azure Search better

Per richieste di funzionalità o idee su miglioramenti da apportare, fornire i suggerimenti su UserVoice.If you have feature requests or ideas for improvements, provide your input on UserVoice.