Настройка семантического ранжирования и возврата подпись в результатах поиска

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

Необходимые компоненты

  • Служба поиска на уровне "Базовый", "Стандартный" (S1, S2, S3) или служба хранилища оптимизированного уровня (L1, L2) при условии доступности региона.

  • Семантический рангировщик включен в службе поиска.

  • Существующий индекс поиска с форматированным текстовым содержимым. Семантический ранжирование применяется к полям текста (невектора) и лучше всего подходит для содержимого, который является информационным или описательным.

Выбор клиента

Выберите клиент поиска, поддерживающий семантический ранжирование. Ниже приведено несколько вариантов:

Добавление семантической конфигурации

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

Семантическая конфигурация имеет имя и следующие свойства:

Свойство Характеристики
Поле заголовка Короткая строка, в идеале до 25 слов. Это поле может быть названием документа, имени продукта или уникального идентификатора. Если у вас нет подходящего поля, оставьте его пустым.
Поля содержимого Длинные фрагменты текста в форме естественного языка при условии максимального ограничения ввода маркеров в моделях машинного обучения. Распространенные примеры включают текст документа, описание продукта или другой текст свободной формы.
Поля ключевых слов Список ключевое слово, таких как теги документа или описательный термин, например категория элемента.

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

Во всех свойствах семантической конфигурации необходимо назначить поля:

  • Атрибуты как searchable и retrievable
  • Строки типа Edm.String, Collection(Edm.String)строковые подфилды Collection(Edm.ComplexType)
  1. Войдите в портал Azure и перейдите в службу поиска с поддержкой семантического ранжирования.

  2. В области навигации слева откройте индекс.

  3. Выберите семантические конфигурации и выберите " Добавить семантику конфигурации".

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

    Screenshot that shows how to create a semantic configuration in the Azure portal.

    Нажмите ОК, чтобы сохранить изменения.

Миграция из предварительных версий

Если код семантического ранжирования использует api предварительной версии, в этом разделе объясняется, как перейти к стабильным версиям. Журналы изменений можно проверка для проверки общедоступной доступности:

Изменения поведения:

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

  • В 2021-04-30-Preview и всех более поздних версиях ДЛЯ REST API и всех пакетов SDK, предназначенных для одной и той же версии: semanticConfiguration (в определении индекса) определяет, какие поля поиска используются в семантической ранжировании. Ранее в REST API searchFields 2020-06-30-Preview (в запросе) использовался для спецификации полей и приоритета. Этот подход работал только в 2020-06-30-Preview и устарел во всех остальных версиях.

Шаг 1. Удаление запросаLanguage

Подсистема семантического ранжирования теперь не зависит от языка. Если queryLanguage он указан в логике запроса, он больше не используется для семантического ранжирования, но по-прежнему применяется к исправлению орфографии.

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

В противном случае удалите queryLanguage.

Шаг 2. Замена searchFields на semanticConfiguration

Если код вызывает REST API 2020-06-30-Preview или бета-пакеты SDK, предназначенные для этой версии REST API, вы можете использовать searchFields в запросе запроса, чтобы указать семантические поля и приоритеты. В начальных бета-версиях было двойное назначение, searchFields ограничивающее начальный запрос к полям, перечисленным в searchFields, а также задание приоритета поля при использовании семантического ранжирования. В более поздних версиях searchFields сохраняет свою исходную цель, но больше не используется для семантического ранжирования.

Сохраняйте searchFields запросы, если вы используете его для ограничения полнотекстового поиска в списке именованных полей.

Добавьте в semanticConfiguration схему индекса, чтобы указать приоритет поля, следуя инструкциям в этой статье.

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

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