Indexación de blobs y archivos CSV mediante el modo de análisis delimitedText
Se aplica a: Indexadores de Blob Storage, Indexadores de archivos
En Búsqueda de Azure AI, los indexadores para Azure Blob Storage y Azure Files admiten un modo de análisis de delimitedText
para archivos CSV que tratan cada línea en el CSV como un documento de búsqueda independiente. Por ejemplo, con el siguiente texto delimitado por comas, el modo de análisis delimitedText
daría como resultado dos documentos en el índice de búsqueda:
id, datePublished, tags
1, 2016-01-12, "azure-search,azure,cloud"
2, 2016-07-07, "cloud,mobile"
Si un campo dentro del archivo CSV contiene el delimitador, se debe encapsular entre comillas. Si el campo contiene una comilla, debe escaparse con comillas dobles (""
).
id, datePublished, tags
1, 2020-01-05, "tags,with,""quoted text"""
Sin el modo de análisis delimitedText
, todo el contenido del archivo CSV se trataría como un documento de búsqueda.
Siempre que cree varios documentos de búsqueda desde un solo blob, asegúrese de consultar Indexación de blobs para producir varios documentos de búsqueda, que le ayudará a comprender cómo funcionan las asignaciones de claves de documentos. El indexador de blobs es capaz de buscar o generar valores que definen de forma única cada documento nuevo. En concreto, puede crear una AzureSearch_DocumentKey
transitoria cuando se analiza un blob en partes más pequeñas, donde el valor se usa como clave del documento de búsqueda en el índice.
Configurar la indexación de CSV
Para indexar blobs de CSV, cree o actualice una definición de indizador con el modo de análisis delimitedText
en una solicitud Crear indizador.
Solo se admite la codificación UTF-8.
{
"name" : "my-csv-indexer",
... other indexer properties
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "firstLineContainsHeaders" : true } }
}
firstLineContainsHeaders
indica que la primera línea (no en blanco) de cada blob contiene encabezados. Si el blob no contienen una línea de encabezado inicial, los encabezados deben especificarse en la configuración del indexador:
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
Puede personalizar el carácter delimitador mediante la configuración de delimitedTextDelimiter
. Por ejemplo:
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextDelimiter" : "|" } }
Nota:
En el modo de análisis de texto delimitado, Búsqueda de Azure AI supone que todos los blobs son CSV. Si tiene una combinación de blobs CSV y no CSV en el mismo origen de datos, considere la posibilidad de usar filtros de extensión de archivo para controlar qué archivos se importan en cada ejecución del indexador.
Ejemplos de solicitud
En resumen, estos son los ejemplos de cargas útiles completas.
Origen de datos:
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" } }
}