Compartir a través de


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