Поиск в содержимом Хранилища BLOB-объектов Azure

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

В этой статье просмотрите базовый рабочий процесс для извлечения содержимого и метаданных из больших двоичных объектов и отправки его в индекс поиска в службе "Поиск ИИ Azure". К полученному индексу можно отправлять запросы, используя полнотекстовый поиск. При необходимости можно отправить обработанное содержимое БОЛЬШОго двоичного объекта в хранилище знаний для сценариев, отличных от поиска.

Примечание.

Уже знакомы с рабочим процессом и созданием индекса? Настройте индексатор BLOB-объектов следующим шагом.

Значение добавления полнотекстового поиска в данные BLOB-объектов

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

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

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

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

После создания и заполнения индекса он существует независимо от контейнера BLOB-объектов, но можно повторно запустить операции индексирования, чтобы обновить индекс на основе измененных документов. Обнаружить изменения можно с помощью сведений метки времени на отдельных BLOB-объектах. В качестве механизма обновления можно выбрать либо запланированное выполнение, либо индексацию по требованию.

Ресурсы, используемые в решении поиска BLOB-объектов

Вам потребуется поиск azure AI, Хранилище BLOB-объектов Azure и клиент. Поиск azure AI обычно является одним из нескольких компонентов в решении, где код приложения выдает запросы API запросов и обрабатывает ответ. Вы также можете написать код приложения для обработки индексирования, хотя для проверки концепции тестирования и импровизации задач обычно используется портал Azure в качестве клиента поиска.

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

Вы можете начать работу непосредственно на странице портала учетной записи служба хранилища.

  1. На левой странице навигации в разделе "Управление данными" выберите "Поиск ИИ Azure", чтобы выбрать или создать службу поиска.

  2. Выполните действия мастера, чтобы извлечь и при необходимости создать содержимое, доступные для поиска, из больших двоичных объектов. Рабочий процесс — мастер импорта данных. Рабочий процесс создает индексатор, источник данных, индекс и набор навыков навыков на служба искусственного интеллекта Azure.

    Снимок экрана мастера поиска ИИ Azure на странице портала служба хранилища Azure.

  3. Используйте обозреватель поиска на странице портала поиска, чтобы запросить содержимое.

Мастер — это лучшее место для начала, но при настройке индексатора BLOB-объектов вы обнаружите более гибкие параметры. Вы можете использовать клиент REST. Руководство по индексу и поиску полуструктурированных данных (BLOB-объектов JSON) содержит инструкции по вызову REST API.

Как индексируются большие двоичные объекты

По умолчанию большинство больших двоичных объектов индексируются как один документ поиска в индексе, включая большие двоичные объекты со структурированным содержимым, например JSON или CSV, которые индексируются как один блок текста. Однако для документов JSON или CSV с внутренней структурой (разделителями) можно назначить режимы синтаксического анализа для создания отдельных документов поиска для каждой строки или элемента:

Составной или внедренный документ (например, ZIP-архив, документ Word со встроенной электронной почтой Outlook, содержащий вложения или . MSG-файл с вложениями) также индексируется как один документ. Например, все изображения, извлеченные из вложений файла MSG, будут возвращены в поле normalized_images. Если у вас есть изображения, попробуйте добавить обогащение ИИ, чтобы получить больше служебной программы поиска из этого содержимого.

Текстовое содержимое документа извлекается в строковое поле с именем content. Можно также извлечь стандартные и пользовательские метаданные.

Примечание.

Поиск по искусственному интеллекту Azure накладывает ограничения индексатора на то, сколько текста он извлекает в зависимости от ценовой категории. Предупреждение появится в ответе на состояние индексатора, если документы усечены.

Использование индексатора BLOB-объектов для извлечения содержимого

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

Большие двоичные объекты в службе хранилища Azure индексируются с помощью индексатора больших двоичных объектов. Этот индексатор можно вызвать с помощью команды поиска ИИ Azure в служба хранилища Azure, мастера импорта данных, REST API или пакета SDK для .NET. В коде этот индексатор используется путем задания типа и предоставления сведений о подключениях, включающих учетную запись хранения Azure с контейнером BLOB-объекта. Можно сформировать подмножество BLOB-объектов, создав виртуальный каталог, который затем можно передать в качестве параметра, или выполнив фильтрацию по расширению типа файла.

Индексатор распознает документ и открывает BLOB-объект для проверки содержимого. Это первый шаг, который выполняется в конвейере после подключения к источнику данных. На этом этапе обнаруживаются документы в формате PDF, документы Office и другие типы содержимого. За распознавание документов с извлечением текста плата не взимается. Если BLOB-объекты содержат изображения, изображения игнорируются, пока не будет добавлено обогащение с помощью ИИ. Стандартное индексирование применяется только к текстовому содержимому.

Индексатор BLOB-объектов Azure поставляется с параметрами конфигурации и поддерживает отслеживание изменений, если базовые данные предоставляют достаточную информацию. Дополнительные сведения о основных функциях в данных индекса см. в Хранилище BLOB-объектов Azure.

Поддерживаемые уровни доступа

Уровни доступа к хранилищу BLOB-объектов включают горячий, холодный, холодный и архивный. Индексаторы могут получать большие двоичные объекты на горячих, холодных и холодных уровнях доступа.

Поддерживаемые типы содержимого

Запустив индексатор BLOB-объектов через контейнер, можно извлечь текст и метаданные из следующих типов контента с одним запросом:

Управление индексированием больших двоичных объектов

Вы можете управлять тем, какие большие двоичные объекты индексируются, а какие — нет, на основе типов файлов больших двоичных объектов или путем задания самим большим двоичным объектам свойств, благодаря которым индексатор будет их пропускать.

Включите определенные расширения файлов, задав "indexedFileNameExtensions" разделяемый запятыми список расширений файлов (с главной точкой). Исключите определенные расширения файлов, задав "excludedFileNameExtensions" для расширений, которые следует пропустить. Если одно и то же расширение находится в обоих списках, он будет исключен из индексирования.

PUT /indexers/[indexer name]?api-version=2023-11-01
{
    "parameters" : { 
        "configuration" : { 
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpeg" 
        } 
    }
}

Добавление метаданных для "пропуска" большого двоичного объекта

Параметры конфигурации индексатора применяются ко всем BLOB-объектам в контейнере или папке. В некоторых случаях требуется определять способ индексирования отдельных больших двоичных объектов.

Добавьте следующие свойства и значения метаданных в большие двоичные объекты в служба хранилища BLOB-объектов. Когда индексатор обнаруживает это свойство, он пропустит большой двоичный объект или его содержимое в выполнении индексирования.

Имя свойства Значение свойства Описание
"AzureSearch_Skip" "true" Указывает индексатору больших двоичных объектов пропустить весь большой двоичный объект. Не извлекаются ни метаданные, ни содержимое. Это полезно, когда обработка определенного большого двоичного объекта постоянно завершается сбоем и индексирование прерывается.
"AzureSearch_SkipContent" "true" Это эквивалентно описанному выше параметру"dataToExtract" : "allMetadata", область заданному большому двоичному объекту.

Индексация метаданных BLOB-объектов

Распространенный сценарий, который упрощает сортировку БОЛЬШИХ двоичных объектов любого типа контента, заключается в индексировании пользовательских метаданных и системных свойств для каждого большого двоичного объекта. Таким образом, независимо от типа документа, хранящегося в индексе в службе поиска, индексируются сведения обо всех BLOB-объектах. Используя новый индекс, можно перейти к сортировке, фильтрации и использованию аспектов по всему содержимому хранилища BLOB-объектов.

Примечание.

Теги индекса BLOB-объектов изначально индексируются службой хранилища BLOB-объектов и предоставляются для выполнения запросов. Если для атрибутов ключа и значения BLOB-объектов требуются возможности индексации и фильтрации, то вместо метаданных следует использовать теги индекса BLOB-объектов.

Дополнительные сведения об индексе BLOB-объектов см. в статье об использовании индекса BLOB-объектов для поиска данных и управлении ими в хранилище BLOB-объектов Azure.

Поиск содержимого BLOB-объекта в индексе поиска

Выходными данными индексатора является индекс поиска, используемый для интерактивного исследования с применением произвольного текста и отфильтрованных запросов в клиентском приложении. Для первоначального исследования и проверки содержимого рекомендуется начать с проводника поиска на портале, который поможет изучить структуру документа. В обозревателе поиска можно использовать следующее:

Более комплексное и окончательное решение заключается в сборе входных данных запроса и представления ответа в виде результатов поиска в клиентском приложении. В следующем руководстве по C# объясняется, как создать приложение поиска: добавить поиск в приложение ASP.NET Core (MVC).

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