Настройка семантического ранжирования и возврата подпись в результатах поиска
В этой статье вы узнаете, как вызвать семантический ранжирование по результирующем набору, продвигая наиболее семантические результаты в верхней части стека. Вы также можете получить семантические подпись с выделением наиболее релевантных терминов и фраз, а также семантических ответов.
Необходимые компоненты
Служба поиска на уровне "Базовый", "Стандартный" (S1, S2, S3) или служба хранилища оптимизированного уровня (L1, L2) при условии доступности региона.
Семантический рангировщик включен в службе поиска.
Существующий индекс поиска с форматированным текстовым содержимым. Семантический ранжирование применяется к полям текста (невектора) и лучше всего подходит для содержимого, который является информационным или описательным.
Выбор клиента
Выберите клиент поиска, поддерживающий семантический ранжирование. Ниже приведено несколько вариантов:
- портал Azure с помощью конструктора индексов для добавления семантической конфигурации.
- Visual Studio Code с клиентом REST
- Пакет Azure SDK для .NET
- Пакет SDK для Azure для Python
- Пакет Azure SDK для Java
- Пакет SDK для Azure для JavaScript
Добавление семантической конфигурации
Семантическая конфигурация — это раздел в индексе, который устанавливает входные данные поля для семантического ранжирования. Вы можете добавлять или обновлять семантику конфигурации в любое время, не требуется перестроение. При создании нескольких конфигураций можно указать значение по умолчанию. Во время запроса укажите семантику конфигурации запроса или оставьте ее пустой, чтобы использовать значение по умолчанию.
Семантическая конфигурация имеет имя и следующие свойства:
Свойство | Характеристики |
---|---|
Поле заголовка | Короткая строка, в идеале до 25 слов. Это поле может быть названием документа, имени продукта или уникального идентификатора. Если у вас нет подходящего поля, оставьте его пустым. |
Поля содержимого | Длинные фрагменты текста в форме естественного языка при условии максимального ограничения ввода маркеров в моделях машинного обучения. Распространенные примеры включают текст документа, описание продукта или другой текст свободной формы. |
Поля ключевых слов | Список ключевое слово, таких как теги документа или описательный термин, например категория элемента. |
Можно указать только одно поле заголовка, но вы можете иметь столько содержимого и ключевое слово полей, сколько вам нравится. Для полей содержимого и ключевое слово выведите список полей в порядке приоритета, так как поля с низким приоритетом могут быть усечены.
Во всех свойствах семантической конфигурации необходимо назначить поля:
- Атрибуты как
searchable
иretrievable
- Строки типа
Edm.String
,Collection(Edm.String)
строковые подфилдыCollection(Edm.ComplexType)
Войдите в портал Azure и перейдите в службу поиска с поддержкой семантического ранжирования.
В области навигации слева откройте индекс.
Выберите семантические конфигурации и выберите " Добавить семантику конфигурации".
Откроется страница "Новая семантическая конфигурация" с параметрами выбора поля заголовка, полей содержимого и полей ключевое слово. Допустимы только поля строк, доступные для поиска и получения. Обязательно перечислите поля содержимого и ключевое слово поля в порядке приоритета.
Нажмите ОК, чтобы сохранить изменения.
Миграция из предварительных версий
Если код семантического ранжирования использует api предварительной версии, в этом разделе объясняется, как перейти к стабильным версиям. Журналы изменений можно проверка для проверки общедоступной доступности:
- 2023-11-01 (REST)
- Журнал изменений пакета SDK Azure для .NET (11.5)
- Журнал изменений пакета SDK Azure для Python (11.4)
- Журнал изменений пакета SDK Azure для Java (11.6)
- Журнал изменений пакета SDK Azure для JavaScript (12.0)
Изменения поведения:
По состоянию на 14 июля 2023 г. семантический рангер не зависит от языка. Он может повторно выполнять результаты, состоящие из многоязычного содержимого, без предвзятости к конкретному языку. В предварительных версиях семантический ранжирование будет отменять результаты, отличающиеся от языка, заданного анализатором полей.
В 2021-04-30-Preview и всех более поздних версиях ДЛЯ REST API и всех пакетов SDK, предназначенных для одной и той же версии:
semanticConfiguration
(в определении индекса) определяет, какие поля поиска используются в семантической ранжировании. Ранее в REST APIsearchFields
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
схему индекса, чтобы указать приоритет поля, следуя инструкциям в этой статье.
Следующие шаги
Проверьте семантику конфигурации, выполнив семантический запрос.