Agendar um indexador no Azure AI Search

Os indexadores podem ser configurados para serem executados em uma agenda quando você define a schedule propriedade. Algumas situações em que o agendamento do indexador é útil incluem:

  • Os dados de origem estão mudando ao longo do tempo e você deseja que o indexador processe automaticamente a diferença.
  • Os dados de origem são muito grandes e você precisa de um agendamento recorrente para indexar todo o conteúdo.
  • Um índice é preenchido de várias fontes, usando vários indexadores, e você deseja escalonar os trabalhos para reduzir conflitos.

Quando a indexação não puder ser concluída na janela de processamento típica de 2 horas, você pode agendar que o indexador seja executado em uma cadência de 2 horas para trabalhar em um grande volume de dados. Desde que sua fonte de dados dê suporte a lógica de detecção de alterações, os indexadores poderão continuar automaticamente de onde pararam em cada execução.

Quando um indexador estiver em uma agenda, ele permanecerá na agenda até que você limpe o intervalo ou a hora de início ou defina disabled como true. Deixar o indexador em um agendamento quando não houver nada para processar não afetará o desempenho do sistema. Verificar se há conteúdo alterado é uma operação relativamente rápida.

Pré-requisitos

  • Um indexador válido configurado com uma fonte de dados e um índice.

  • Altere a detecção na fonte de dados. O Armazenamento do Microsoft Azure e SharePoint têm detecção de alteração interna. Outras fontes de dados, como o SQL do Azure e o Azure Cosmos DB, devem ser habilitadas manualmente.

Erro de Definição de Agenda

Schedule faz parte da definição do indexador. Se a schedule propriedade for omitida, o indexador só será executado sob demanda. A propriedade tem duas partes.

Propriedade Descrição
"intervalo" O intervalo refere-se ao tempo entre o início de duas execuções consecutivas do indexador. O menor intervalo permitido é de 5 minutos e o mais longo é de 1440 minutos (24 horas). Ele deve ser formatado como um valor XSD de "dayTimeDuration" (um subconjunto restrito de um valor de duração ISO 8601 ).

O padrão para isso é: P(nD)(T(nH)(nM)).

Exemplos: PT15M para cada 15 minutos, PT2H para cada duas horas.
"startTime" (opcional) A hora de início é especificada em UTC (tempo Universal Coordenado). Se for omitido, a hora atual será usada. Esse tempo pode estar no passado, caso em que a primeira execução é agendada como se o indexador fosse executado continuamente desde a hora de início original.

O exemplo a seguir é um agendamento que começa em 1º de janeiro à meia-noite e é executado a cada duas horas.

{
    "dataSourceName" : "hotels-ds",
    "targetIndexName" : "hotels-idx",
    "schedule" : { "interval" : "PT2H", "startTime" : "2024-01-01T00:00:00Z" }
}

Configurar um agendamento

Os escalonamentos são especificados em uma definição de indexador. Para configurar uma programação, você pode usar o portal do Azure, REST APIs ou um SDK do Azure.

  1. Entre no portal do Azure e abra a página do serviço de pesquisa.
  2. No painel de navegação esquerdo, selecione Indexadores.
  3. Abra um indexador.
  4. Selecione Configurações.
  5. Role para baixo para Agendamento, e, em seguida, escolha Horário, Diário ou Personalizado para definir uma data, hora ou intervalo personalizado específico.

Alterne para a guia Definição do Indexador (JSON) na parte superior do índice para exibir a definição de agendamento no formato XSD.

Comportamento do agendamento

Para indexação baseada em texto, o agendador pode disparar quantos trabalhos do indexador forem compatíveis com o serviço de pesquisa, o que é determinado pelo número de unidades de pesquisa. Por exemplo, se o serviço tiver três réplicas e quatro partições, você poderá ter 12 trabalhos de indexador em execução ativa, iniciados sob demanda ou em uma agenda.

Os indexadores baseados em habilidades são executados em um ambiente de execução diferente. Por esse motivo, o número de unidades de serviço não tem nenhuma influência sobre o número de trabalhos indexadores baseados em habilidades que você pode executar. Vários indexadores com base em habilidades podem ser executados em paralelo, mas isso depende da disponibilidade do nó dentro do ambiente de execução.

Embora vários indexadores possam ser executados simultaneamente, cada indexador específico é apenas uma instância. Você não pode executar duas cópias do mesmo indexador simultaneamente. Se um indexador ainda estiver em execução quando a próxima execução agendada estiver definida para iniciar, a execução pendente será adiada até a próxima ocorrência agendada, permitindo que o trabalho atual seja concluído.

Vamos considerar um exemplo para tornar isso mais concreto. Suponha que configuremos uma agenda de indexador com um intervalo de hora em hora e uma hora de início de 1º de janeiro de 2024 às 8:00:00 AM UTC. Veja o que poderia acontecer quando uma execução de indexador demorasse mais do que uma hora:

  • A primeira execução do indexador começa em ou por volta de 1º de janeiro de 2024 às 8:00 AM UTC. Suponha que essa execução leve 20 minutos (ou qualquer período de tempo menor que 1 hora).

  • A segunda execução começa por volta de 1º de janeiro de 2022, às 09:00 UTC. Suponha que essa execução leva 70 minutos – mais de uma hora – e não será concluída até 10:10 AM UTC.

  • A terceira execução está agendada para iniciar às 10:00 AM UTC, mas, nesse momento, a execução anterior ainda está em execução. Essa execução agendada é ignorada. A próxima execução do indexador não será iniciada até 11:00 AM UTC.

Observação

Se um indexador for definido como um determinado agendamento, mas falhar repetidamente no mesmo documento a cada vez, o indexador começará a ser executado em um intervalo menos frequente (até o intervalo máximo de pelo menos uma vez a cada 2 horas ou 24 horas, dependendo de diferentes fatores de implementação) até que ele faça o andamento novamente. Se você acreditar que corrigiu qualquer problema subjacente, poderá executar o indexador manualmente, e se a indexação for bem sucedido, o indexador retornará ao seu agendamento regular.

Próximas etapas

Para indexadores executados em um agendamento, você pode monitorar operações recuperando o status do serviço de pesquisa ou obter informações detalhadas habilitando o log de recurso.