Indexar blobs CSV e arquivos usando o modo de análise delimitedText
Aplica-se a: indexadores de armazenamento de Blob, indexadores de arquivos
No Azure AI Search, os indexadores do Armazenamento de Blobs do Azure e dos Arquivos do Azure dão suporte a um delimitedText
modo de análise para arquivos CSV que trata cada linha no CSV como um documento de pesquisa separado. Por exemplo, dado o seguinte texto delimitado por vírgula, o delimitedText
modo de análise resultaria em dois documentos no índice de pesquisa:
id, datePublished, tags
1, 2016-01-12, "azure-search,azure,cloud"
2, 2016-07-07, "cloud,mobile"
Se um campo dentro do arquivo CSV contiver o delimitador, ele deve ser colocado entre aspas. Se o campo contiver uma citação, ele deve ser escapado usando aspas duplas (""
).
id, datePublished, tags
1, 2020-01-05, "tags,with,""quoted text"""
Sem o delimitedText
modo de análise, todo o conteúdo do arquivo CSV seria tratado como um documento de pesquisa.
Sempre que você criar vários documentos de pesquisa a partir de um único blob, certifique-se de revisar os blobs de indexação para produzir vários documentos de pesquisa para entender como as atribuições de chave de documento funcionam. O indexador de blob é capaz de encontrar ou gerar valores que definem exclusivamente cada novo documento. Especificamente, ele pode criar um transitório AzureSearch_DocumentKey
quando um blob é analisado em partes menores, onde o valor é usado como a chave do documento de pesquisa no índice.
Configurar a indexação CSV
Para indexar blobs CSV, crie ou atualize uma definição de indexador com o delimitedText
modo de análise em uma solicitação Criar indexador .
Apenas a codificação UTF-8 é suportada.
{
"name" : "my-csv-indexer",
... other indexer properties
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "firstLineContainsHeaders" : true } }
}
firstLineContainsHeaders
Indica que a primeira linha (não em branco) de cada blob contém cabeçalhos. Se os blobs não contiverem uma linha de cabeçalho inicial, os cabeçalhos deverão ser especificados na configuração do indexador:
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
Você pode personalizar o caractere delimitador usando a definição de delimitedTextDelimiter
configuração. Por exemplo:
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextDelimiter" : "|" } }
Nota
No modo de análise de texto delimitado, o Azure AI Search assume que todos os blobs são CSV. Se você tiver uma combinação de blobs CSV e não CSV na mesma fonte de dados, considere o uso de filtros de extensão de arquivo para controlar quais arquivos são importados em cada execução de indexador.
Exemplos de pedidos
Juntando tudo, aqui estão os exemplos completos de carga útil.
Fonte de dados:
POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
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>" }
}
Indexador:
POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
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" } }
}