Índice de atualização (API REST Azure Cognitive Search)

A modificação de um índice existente normalmente requer uma queda e recompilação de índice, exceto para as seguintes alterações de esquema:

  • Adicionar novos campos a uma coleção de campos

  • Adicionar campos recém-criados a um sugestor

  • Adicionar ou alterar perfis de pontuação

  • Adicionar ou alterar chaves de criptografia

  • Adicionar novos analisadores personalizados

  • Alterar opções do CORS

  • Altere os campos existentes com qualquer uma dessas três modificações:

    • Alteração retrievable (os valores são verdadeiros ou falsos)
    • Alteração searchAnalyzer (usada no momento da consulta)
    • Adicionar ou alterar synonymMaps (usado no momento da consulta)

Para adicionar essas atualizações, coloque o nome do índice no URI de solicitação. No corpo da solicitação, inclua uma definição de índice totalmente especificada com suas modificações.

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

Os campos existentes e a maioria dos atributos de campo não podem ser excluídos ou alterados, nem os campos podem ser adicionados aos sugestores. Somente campos recém-criados podem ser adicionados a um suggester.

Quando um novo campo é adicionado, todos os documentos existentes obtêm automaticamente um valor nulo para esse campo. Nenhum outro espaço de armazenamento é consumido até que uma das duas coisas ocorra: um valor é fornecido para o novo campo (usando mesclagem) ou novos documentos são adicionados.

Não é possível modificar analisadores, tokens, filtros de token e filtros char existentes. Outros novos poderão ser adicionados a um índice existente apenas se o sinalizador allowIndexDowntime estiver definido como true na solicitação de atualização de índice:

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

Essa operação coloca o índice offline por alguns segundos. As solicitações de indexação e consulta falharão enquanto o índice estiver offline. As operações de desempenho e gravação podem ser temporariamente prejudicadas por vários minutos depois que o índice estiver novamente online.

Parâmetros de URI

Parâmetro Descrição
nome do serviço Obrigatórios. Defina isso como o nome exclusivo definido pelo usuário do serviço de pesquisa.
nome do índice Obrigatórios. O URI de solicitação especifica o nome do índice a ser atualizado.
api-version Obrigatórios. A versão estável atual é api-version=2020-06-30. Consulte versões de API para obter mais versões.
allowIndexDowntime Opcional. Falso por padrão. Definido como true para determinadas atualizações, como a adição ou modificação de um analisador, tokenizer, filtro de token, filtro char ou propriedade de similaridade. O índice é colocado offline durante a atualização, geralmente não mais do que vários segundos.

Cabeçalhos de solicitação

A tabela a seguir descreve os cabeçalhos de solicitação necessários e opcionais

Campos Descrição
Tipo de conteúdo Obrigatórios. Defina-o como application/json
chave de API Obrigatórios. A api-key é usada para autenticar a solicitação para o serviço Search. É um valor de cadeia de caracteres exclusivo de seu serviço. As solicitações de atualização devem incluir um api-key cabeçalho definido para sua chave de administrador (em vez de uma chave de consulta). Você pode encontrar a chave de API no painel do serviço de pesquisa no portal do Azure.

Corpo da solicitação

A sintaxe do corpo da solicitação é a mesma que para Criar Índice.

Ao atualizar um índice existente, o corpo deve incluir a definição de esquema completa, incluindo quaisquer definições originais que você deseja preservar. Em geral, o melhor padrão para atualizações é recuperar a definição de índice com um GET, modificá-la e atualizá-la com PUT.

Resposta

Para uma solicitação bem-sucedida, você deverá ver “204 Sem Conteúdo”.

Por padrão, o corpo da resposta estará vazio. No entanto, se o cabeçalho da Prefer solicitação estiver definido como return=representation, o corpo da resposta conterá o JSON do índice atualizado. Nesse caso, o código de status de êxito será 200 OK.

Confira também