Индексирование больших двоичных объектов и файлов обычного текста в службе "Поиск ИИ Azure"

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

При использовании индексатора для извлечения текста большого двоичного объекта или содержимого файла для полнотекстового поиска можно назначить режим синтаксического анализа, чтобы получить лучшие результаты индексирования. По умолчанию индексатор анализирует свойство большого двоичного объекта content как один блок текста. Однако если все большие двоичные объекты и файлы содержат обычный текст в одной кодировке, можно значительно повысить производительность индексирования с помощью text режима синтаксического анализа.

Рекомендации для text синтаксического анализа включают одно из следующих характеристик:

  • Тип файла — .txt
  • Файлы могут быть любого типа, но их содержимое является текстом (например, исходный код программы, HTML, XML и т. д.). Для файлов на языке разметки синтаксические символы передаются как статический текст.

Следует помнить, что все индексаторы выполняют сериализацию в формат JSON. По умолчанию содержимое всего текстового файла индексируется в одном большом поле как "content": "<file-contents>". Новые строки и инструкции возврата внедрены в поле содержимого и выражаются как \r\n\.

Если требуется более подробный или детализированный результат, и если тип файла совместим, рассмотрите следующие решения:

  • Режим синтаксического анализа delimitedText, если источником является CSV-файл
  • jsonArray или jsonLines, если источником является JSON

Альтернативный третий вариант для разбиения содержимого в несколько частей требует расширенных функций в виде обогащения ИИ. При этом добавляются алгоритмы анализа, которые находят и присваивают фрагменты файла различным поисковым полям. Вы можете найти полное или частичное решение с помощью встроенных навыков, таких как распознавание сущностей или извлечение ключевое слово, но более вероятное решение может быть пользовательской моделью обучения, которая понимает содержимое, упаковав его в пользовательский навык.

Настройка индексирования обычного текста

Чтобы индексировать большие двоичные объекты обычного текста, создайте или обновите определение индексатора со parsingMode свойством конфигурации, заданным text в запросе Create Indexer :

PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2023-11-01
Content-Type: application/json
api-key: [admin key]

{
  ... other parts of indexer definition
  "parameters" : { "configuration" : { "parsingMode" : "text" } }
}

По умолчанию предполагается кодировка UTF-8. Чтобы указать другую кодировку, используйте свойство конфигурации encoding:

{
  ... other parts of indexer definition
  "parameters" : { "configuration" : { "parsingMode" : "text", "encoding" : "windows-1252" } }
}

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

Режимы синтаксического анализа задаются в определении индексатора.

POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
Content-Type: application/json
api-key: [admin key]

{
  "name" : "my-plaintext-indexer",
  "dataSourceName" : "my-blob-datasource",
  "targetIndexName" : "my-target-index",
  "parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
}

Следующие шаги