Быстрый старт: Использование обозревателя поиска для выполнения запросов на портале Azure

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

В этом кратком руководстве используется существующий индекс для демонстрации обозревателя поиска.

Необходимые условия

Запуск обозревателя поиска

  1. Перейдите в службу поиска на портале Azure.

  2. В левой области выберите "Обзор".

  3. На панели команд выберите обозреватель поиска.

    Снимок экрана команды 'Search explorer' на портале.

    Кроме того, на странице индекса выберите вкладку обозревателя поиска .

Запрос тремя методами

Существует три подхода к запросу в обозревателе поиска.

  • Представление запроса обеспечивает стандартную панель поиска. Он принимает пустой запрос или текстовый запрос в свободной форме с логическими операторами, например ocean view + parking.

  • Окно просмотра изображений предоставляет возможность для просмотра и перетаскивания файлов PNG, JPG или JPEG. Если индекс не имеет векторизатора изображений и эквивалентного навыка, это представление недоступно.

  • Представление JSON поддерживает параметризованные запросы. Фильтры, orderby, select, count, searchFields и все остальные параметры должны быть заданы в представлении JSON.

    Скриншот трех представлений для запроса в обозревателе поиска.

Пример: запрос изображения

Обозреватель поиска принимает изображения в качестве входных данных запроса через представление изображений, для которого требуется использовать поддерживаемую пару векторизатора-навыка. Дополнительные сведения см. в разделе "Настройка векторизатора" в индексе поиска.

Индекс hotels-sample не настроен для векторизации изображений. Если вы хотите выполнить запросы изображений, создайте индекс, как описано в Quickstart: векторный поиск на портале Azure. В быстром старте используются текстовые образцы данных, поэтому следует использовать документы, содержащие изображения.

Чтобы выполнить запрос изображения, выберите или перетащите изображение в область поиска, а затем нажмите кнопку "Поиск". Обозреватель поиска векторизирует изображение и отправляет вектор в поисковую систему для выполнения запросов. Поисковая система возвращает документы, которые достаточно похожи на входное изображение, до указанного k количества результатов.

Снимок экрана: результаты поиска для поиска изображений.

Примеры: запросы JSON

Ниже приведены примеры запросов JSON, которые можно запустить с помощью обозревателя поиска. Чтобы следовать этим примерам, перейдите в представление JSON. Каждый пример JSON можно вставить в текстовую область.

Совет

Представление JSON поддерживает intellisense для завершения имени параметра. Поместите курсор в представление JSON и введите пробел, чтобы просмотреть список всех параметров запроса. Можно также ввести букву, например s, чтобы просмотреть только параметры запроса, начинающиеся с этой буквы.

Intellisense не исключает недопустимые параметры, поэтому используйте собственное усмотрение.

Выполнение неопределенного запроса

В Search Explorer POST-запросы формулируются внутренне с использованием Documents - Search Post (REST API), а ответы возвращаются в виде подробных JSON-документов.

Для первого просмотра содержимого выполните пустой поиск, выбрав "Поиск без предоставленных условий". Пустой поиск полезен в качестве первого запроса, так как он возвращает целые документы, чтобы можно было просмотреть композицию документов. В пустом поиске нет оценки поиска, а документы возвращаются в произвольном порядке ("@search.score": 1 для всех документов). По умолчанию 50 документов возвращаются в ответ на запрос поиска.

Добавьте "count": true , чтобы получить количество совпадений, найденных в индексе. В пустом поиске число — общее количество документов в индексе. В квалифицированном поиске это количество документов, соответствующих входным данным запроса. Помните, что служба возвращает первые 50 совпадений по умолчанию, поэтому количество может указывать больше совпадений в индексе, чем то, что возвращается в результатах.

Эквивалентный синтаксис для пустого поиска — это * или "search": "*".

{
   "search": "*",
   "count": true
}

Результаты

Снимок экрана: пример счетчика.

Запуск свободного текстового запроса

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

Представление JSON не требуется для запроса свободного текста, но мы предоставляем его в ФОРМАТЕ JSON для согласованности с другими примерами в этой статье.

Обратите внимание, что при предоставлении условий поиска, таких как термины запроса или выражения, ранжирование поиска вступает в игру. В следующем примере показан бесплатный текстовый поиск. Оценка релевантности @search.score вычисляется для сопоставления с использованием алгоритма оценки по умолчанию.

{
    "search": "activities `outdoor pool` restaurant OR continental breakfast"
}

Результаты

Вы можете использовать Ctrl-F для поиска конкретных терминов, представляющих интерес, внутри результатов.

Снимок экрана: пример бесплатного текстового запроса.

Ограничение полей в результатах поиска

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

{
   "search": "activities `outdoor pool` restaurant OR continental breakfast",
   "count": true,
   "select": "HotelId, HotelName, Tags, Description"
}

Результаты

Снимок экрана: ограничение полей в примере результатов поиска.

Предоставить следующую серию результатов

Поиск с использованием ИИ Azure возвращает первые 50 совпадений на основе ранжирования поиска. Индекс hotels-sample содержит только 50 отелей, поэтому мы используем меньшее число отелей, чтобы проиллюстрировать разбиение на страницы. Чтобы получить следующий набор соответствующих документов, добавьте "top": 20 и "skip": 10 увеличить результирующий набор до 20 документов (по умолчанию — 50, максимум 1000), пропуская первые 10 документов. Вы можете проверить ключ документа (HotelId) для идентификации документа.

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

{
   "search": "activities `outdoor pool` restaurant OR continental breakfast",
   "count": true,
   "select": "HotelId, HotelName, Tags, Description",
   "top": 20,
   "skip": 10
}

Результаты

Снимок экрана примера возвращения следующей партии результатов поиска.

Выражения фильтра (больше, меньше, равно)

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

{
    "search": "activities `outdoor pool` restaurant OR continental breakfast",
    "count": true,
    "select": "HotelId, HotelName, Tags, Description, Rating",
    "filter": "Rating gt 4"
}

Результаты

Снимок экрана: пример фильтра.

Сортировка результатов

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

{
    "search": "activities `outdoor pool` restaurant OR continental breakfast",
    "count": true,
    "select": "HotelId, HotelName, Tags, Description, Rating, LastRenovationDate",
    "filter": "Rating gt 4",
    "orderby": "LastRenovationDate desc"
}

Результаты

Снимок экрана: пример сортировки.

Выводы

В этом кратком руководстве вы использовали Поисковый обозреватель, чтобы сделать запрос индекса с помощью REST API.

  • Результаты возвращаются в виде подробных документов JSON, чтобы вы могли просматривать построение и содержимое каждого документа в полном объеме. Параметр select в выражении запроса ограничивает возвращаемые поля.

  • Результаты поиска состоят из всех полей, помеченных как доступные для получения в индексе. Выберите вкладку "Поля" , чтобы просмотреть атрибуты.

  • Поиск по ключевым словам, аналогичный тому, что можно ввести в коммерческом веб-браузере, полезен для тестирования взаимодействия с конечным пользователем. Например, если задан индекс hotels-sample, то можно ввести "activities 'outdoor pool' restaurant OR continental breakfast", а затем использовать Ctrl-F, чтобы найти термины в результатах.

  • Выражения запросов и фильтров сформулируются в синтаксисе, реализованном Поиск с использованием ИИ Azure. По умолчанию используется простой синтаксис, но при необходимости можно использовать full Lucene для более мощных запросов. Выражения фильтров сформулируются в синтаксисе OData.

Очистка ресурсов

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

На портале Azure выберите All resources или Resource groups на панели слева, чтобы найти ресурсы и управлять ими. Вы можете удалить ресурсы по отдельности или удалить группу ресурсов, чтобы удалить все ресурсы одновременно.

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

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

Чтобы узнать больше о структурах запросов и синтаксисе, используйте клиент REST для создания выражений запросов, использующих больше частей REST API. Документы — поиск сообщений (REST API) особенно пригодны для обучения и исследования.