Поделиться через


Обновление индекса (REST API поиска Azure AI)

Изменение существующего индекса обычно требует удаления и перестроения индекса, за исключением следующих изменений схемы:

  • Добавление новых полей в коллекцию полей

  • Добавление только что созданных полей в средство подбора

  • Добавление или изменение профилей оценки

  • Добавление или изменение ключей шифрования

  • Добавление новых пользовательских анализаторов

  • Изменение параметров CORS

  • Измените существующие поля с помощью любого из следующих трех изменений:

    • Изменение retrievable (значения true или false)
    • Изменение searchAnalyzer (используется во время запроса)
    • Добавление или изменение synonymMaps (используется во время запроса)

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

PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]  
  Content-Type: application/json  
  api-key: [admin key]  

Существующие поля и большинство атрибутов полей нельзя удалять или изменять, а также добавлять поля в средства подбора. В можно добавлять только вновь созданные suggesterполя.

При добавлении нового поля все существующие документы автоматически получают для этого поля значение NULL. Другое дисковое пространство не используется до тех пор, пока не произойдет одно из двух действий: для нового поля (с помощью слияния) или добавления новых документов.

Существующие анализаторы, создатели маркеров, фильтры маркеров и фильтры символов не могут быть изменены. Добавление новых к уже существующему индексу возможно только в том случае, если allowIndexDowntime флаг включен в запросе на обновление индекса. Это же правило применяется при добавлении исходного поля вектора к уже существующему индексу, созданному с помощью API, который не поддерживал векторный поиск, особенно до версии REST API 2023-07-01 (предварительная версия).

PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true

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

Параметры URI

Параметр Описание
имя службы Обязательный. Задайте уникальное, определяемое пользователем имя службы поиска.
имя индекса Обязательный. URI запроса указывает имя обновляемого индекса.
api-version Обязательный. Список поддерживаемых версий см. в разделе Версии API.
allowIndexDowntime Необязательный элемент. Значение по умолчанию: false. Задайте значение true для некоторых обновлений, таких как добавление или изменение анализатора, создателя маркеров, фильтра маркеров, фильтра символов или свойства подобия. Индекс переключается во время обновления, обычно не более нескольких секунд.

Заголовки запросов

Таблица ниже содержит обязательные и необязательные заголовки запроса.

Поля Описание
Content-Type Обязательный. Для этого заголовка необходимо задать значение application/json
api-key Необязательно, если вы используете роли Azure и в запросе предоставляется маркер носителя, в противном случае требуется ключ. Запросы на обновление должны включать заголовок, заданный api-key для ключа администратора (а не ключа запроса). Дополнительные сведения см. в статье Подключение к поиску ИИ Azure с помощью проверки подлинности по ключу .

Текст запроса

Синтаксис текста запроса совпадает с синтаксисом для создания индекса.

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

Ответ

Успешный запрос должен возвратить код состояния "204 Нет содержимого".

По умолчанию текст ответа пуст. Однако если для заголовка Prefer запроса задано значение return=representation, текст ответа содержит JSON обновленного индекса. В этом случае код состояния успешного выполнения — "200 OK".

См. также раздел