Индексирование CSV BLOB-ов и файлов с использованием режима разбора по разделителям

Замечание

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

Область применения: индексаторы хранилища BLOB-объектов, индексаторы файлов

В службе "Поиск ИИ Azure" индексаторы для BLOB-объектов хранения Azure и службы "Файлы 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-объектов может находить или создавать значения, которые однозначно определяют каждый новый документ. В частности, он может создать транзитивную теорию AzureSearch_DocumentKey , когда большой двоичный объект анализируется в небольших частях, где значение затем используется в качестве ключа документа поиска в индексе.

Настройка индексирования CSV

Чтобы индексировать BLOB-объекты CSV, создайте или обновите определение индексатора в режиме синтаксического анализа в запросе delimitedText.

Поддерживается только кодировка UTF-8.

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

firstLineContainsHeaders указывает, что первая непустая строка каждого блоба содержит заголовки данных. Если блобы не содержат начальную строку заголовков, заголовки должны быть указаны в конфигурации индексатора:

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

Вы можете настроить символ разделителя с помощью delimitedTextDelimiter параметра конфигурации. Рассмотрим пример.

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

Замечание

В режиме синтаксического анализа текста служба "Поиск ИИ Azure" предполагает, что все блобы являются CSV-файлами. Если у вас есть сочетание BLOB-объектов CSV и не CSV в одном источнике данных, рассмотрите возможность использования фильтров расширений файлов для управления импортом файлов при каждом запуске индексатора.

Примеры запросов

Вместе с тем, ниже приведены полные примеры полезной нагрузки.

Источник данных:

POST https://[service name].search.windows.net/datasources?api-version=2026-04-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.windows.net/indexers?api-version=2026-04-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" } }
}