REST службы Когнитивный поиск Azure
Когнитивный поиск Azure — это полностью управляемая облачная служба поиска, которая предоставляет широкие возможности поиска по содержимому, принадлежащему пользователю. Одним из способов добавления возможностей поиска является использование REST API поиска с операциями, которые создают индексы и управляют ими, загружают данные, реализуют функции поиска, выполняют запросы и обрабатывают результаты.
Для создания или изменения самой службы можно использовать отдельный REST API управления . Кроме того, можно использовать портал для многих задач управления службами и содержимым. Чтобы приступить к работе, см. статью "Создание службы поиска" в портал Azure.
Основные понятия
Когнитивный поиск содержит основные понятия служб поиска и индексов и документов:
- Служба поиска содержит один или несколько индексов.
- Индекс предоставляет постоянное хранилище документов поиска.
- Документы поиска загружаются из внешних источников в виде документов JSON и отправляются в индекс, чтобы сделать его пригодным для поиска.
Можно также создать индексатор для автоматизации индексирования. Индексатор имеет источник данных и указывает на индекс. При необходимости он также может иметь набор навыков , который добавляет ИИ в конвейер индексатора.
Обогащение СИ — это расширение индексаторов, добавляющих преобразования машинного обучения, которые извлекают или создают текст, или добавляют структуру в контент, чтобы его можно было индексировать службой поиска. Конструкция, которая управляет обогащением ИИ, называется набором навыков. Во время приема данных он определяет последовательность шагов, которые обнаруживают, структуру или преобразуют содержимое, которое в противном случае невозможно найти (например, содержимое изображения).
Вместе существует пять типов операций, которые могут выполняться в службе:
| Операция | Описание |
|---|---|
| Index | Создание, удаление, обновление или настройка индекса поиска. |
| Document | Добавление, обновление или удаление документов в индексе, запрос индекса или поиск определенных документов по идентификатору. |
| Индексатор | Автоматизируйте аспекты операции индексирования, настроив источник данных и индексатор , который можно запланировать или запустить по требованию. Эта функция поддерживается для ограниченного числа типов источников данных в Azure. |
| Набор навыков | Часть рабочей нагрузки обогащения ИИ , набор навыков определяет ряд обработки обогащения, которая извлекает или создает доступный для поиска текст из неструктурированного текста, файлов приложений или файлов изображений. Набор навыков вызывается индексатором. |
| Схема синонимов | Сопоставление синонимов — это ресурс уровня обслуживания, содержащий определяемые пользователем синонимы. Этот ресурс поддерживается независимо от индексов поиска. После отправки можно указать любое поле с возможностью поиска на карту синонимов (по одному на поле). |
Вызов API
Интерфейсы API, описанные в этом разделе, предназначены для выполнения различных операций с поисковыми данными, таких как создание и заполнение индекса, добавление документов и отправка запросов. При вызове API учитывайте следующие моменты:
Запросы должны выдаваться по протоколу HTTPS (на порте по умолчанию 443).
Запросы должны содержать версию API в URI. Значение должно иметь поддерживаемую версию, отформатированную, как показано в следующем примере:
GET https://[search service name].search.windows.net/indexes?api-version=2020-06-30Заголовки запросов должны содержать ключ API , созданный для подготовленной службы поиска. Если есть действительный ключ, для каждого запроса устанавливаются отношения доверия между приложением, которое отправляет запрос, и службой, которая его обрабатывает. При необходимости можно задать заголовок Accept HTTP. Если заголовок не задан, предполагается, что используется
application/jsonзначение по умолчанию.
Проверка подлинности с использованием ключа
Каждый HTTP-запрос к службе поиска проходит проверку подлинности на основе двух фрагментов информации: URL-адреса службы поиска и ключа API, который предоставляет подтверждение, что запрос получен из доверенной сущности. Существует два типа ключей API для разных уровней работы.
| Клавиши | Описание | Ограничения |
|---|---|---|
| Административный | Ключи администратора предоставляют полные права для всех операций, включая возможность управления службой, получение определений состояния и объектов, а также создание и удаление индексов, индексаторов и источников данных. Два ключа API администратора, называемые первичными и вторичнымиключами на портале, автоматически создаются при создании службы и могут быть повторно созданы по запросу. При наличии двух ключей один ключ можно сменить, а второй использовать для непрерывного доступа к службе. Ключи администратора указываются только в заголовках HTTP-запросов. Ключ API администратора нельзя поместить в URL-адрес . | Не более 2 на службу |
| Запрос | Ключи запросов предоставляют доступ только для чтения к содержимому в индексе (документах) и обычно распространяются в клиентские приложения, которые выдают поисковые запросы. Ключи запросов создаются по запросу. Их можно создать вручную на портале или программным путем с помощью REST API управления. Ключи запросов можно указать в заголовке HTTP-запроса для операции поиска, предложения или поиска. Кроме того, ключ запроса можно передать в качестве параметра в URL-адресе. В зависимости от того, как клиентское приложение формулирует запрос, может быть проще передать ключ в качестве параметра запроса: GET /indexes/hotels/docs?search=*&$orderby=lastRenovationDate desc&api-version=2020-06-30&api-key=[query key] |
50 на службу |
Визуально нет никакой разницы между ключом администратора и ключом запроса. Оба ключа представляют собой строки из 32 случайно сгенерированных буквенно-цифровых символов. Если вы теряете отслеживание того, какой тип ключа указан в приложении, можно проверить значения ключей на портале или использовать REST API управления для возврата значения и типа ключа.
Примечание
В целях безопасности в URI запроса не рекомендуется передавать конфиденциальные данные, например api-key. По этой причине Когнитивный поиск Azure будет принимать ключ api-key запроса только в строке запроса, и следует избегать этого, если содержимое индекса не должно быть общедоступным. Как правило, мы рекомендуем передавать api-key в заголовке запроса.
Авторизация
Когнитивный поиск поддерживает управление доступом на основе ролей Azure (Azure RBAC) для администрирования службы поиска с помощью ролей владельца, участника и читателя.
При необходимости для решений поиска, которые могут использовать функции предварительной версии, можно использовать Azure RBAC для управления доступом к индексам и другим объектам в службе поиска. Для этого подхода требуется служба поиска, настроенная для Azure RBAC на плоскости данных, и заголовок авторизации для вызовов REST API, прошедших проверку подлинности с помощью Azure Active Directory.
См. также
- Создание службы поиска в портал Azure
- Сведения о ценах
- Common HTTP request and response headers used in Azure Search (Стандартные заголовки HTTP-запросов и ответов, используемые в Поиске Azure)