使用分隔文本解析模式为 CSV Blob 和文件编制索引

适用于Blob 存储索引器文件索引器

在 Azure AI 搜索中,Azure Blob 存储和 Azure 文件的索引器支持 delimitedText CSV 文件的分析模式,该模式将 CSV 中的每个行视为单独的搜索文档。 例如,给定以下逗号分隔的文本, delimitedText 分析模式将导致搜索索引中的两个文档:

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

如果 CSV 文件中的字段包含分隔符,则应用引号包装它。 如果字段包含引号,则必须用双引号来转义("")。

id, datePublished, tags
1, 2020-01-05, "tags,with,""quoted text"""

delimitedText如果没有分析模式,CSV 文件的整个内容将被视为一个搜索文档。

每当从单个 Blob 创建多个搜索文档时,请务必查看 索引 blob 以生成多个搜索文档, 以了解文档键分配的工作原理。 Blob 索引器能够查找或生成唯一定义每个新文档的值。 具体而言,当解析 blob 为较小部分时,它可以创建一个临时的 AzureSearch_DocumentKey,然后该值被用作索引中搜索文档的键。

设置 CSV 索引

若要为 CSV Blob 编制索引,请使用delimitedText请求上的分析模式创建或更新索引器定义

仅支持 UTF-8 编码。

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

firstLineContainsHeaders 表示每个大块数据的第一行(非空行)包含标头。 如果 Blob 不包含初始标头行,则应在索引器配置中指定标头:

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

可以通过delimitedTextDelimiter 配置设置自定义分隔符字符。 例如:

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

注释

在带分隔符的文本分析模式下,Azure AI 搜索假定所有 Blob 都是 CSV。 如果在同一数据源中混合了 CSV 和非 CSV Blob,请考虑使用 文件扩展名筛选器 来控制每个索引器上运行的导入文件。

请求示例

将所有内容组合在一起,下面是完整的有效负载示例。

数据源:

POST https://[service name].search.azure.cn/datasources?api-version=2025-09-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>" }
}   

索引:

POST https://[service name].search.azure.cn/indexers?api-version=2025-09-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" } }
}