Indexadores no Azure SearchIndexers in Azure Search

Um indexador no Azure Search é um rastreador que extrai dados pesquisáveis e metadados de uma fonte de dados externa do Azure e popula um índice com base nos mapeamentos de campo a campo entre o índice e a fonte de dados.An indexer in Azure Search is a crawler that extracts searchable data and metadata from an external Azure data source and populates an index based on field-to-field mappings between the index and your data source. Essa abordagem, às vezes é chamada de 'modelo de pull' porque o serviço obtém os dados sem a necessidade de escrever qualquer código que adiciona dados a um índice.This approach is sometimes referred to as a 'pull model' because the service pulls data in without you having to write any code that adds data to an index.

Os indexadores baseiam-se em plataformas com indexadores individuais para o SQL Server no Azure, Cosmos DB, armazenamento de tabelas do Azure e o armazenamento de BLOBs ou tipos de fonte de dados.Indexers are based on data source types or platforms, with individual indexers for SQL Server on Azure, Cosmos DB, Azure Table Storage and Blob Storage. Indexadores de armazenamento de blob tem propriedades adicionais específicas para tipos de conteúdo do blob.Blob storage indexers have additional properties specific to blob content types.

Você pode usar um indexador como o único meio para ingestão de dados ou usar uma combinação de técnicas que incluam o uso de um indexador para carregar apenas alguns dos campos no índice.You can use an indexer as the sole means for data ingestion, or use a combination of techniques that include the use of an indexer for loading just some of the fields in your index.

Você pode executar os indexadores sob demanda ou em uma agenda de atualização de dados recorrente que é executada a cada quinze minutos.You can run indexers on demand or on a recurring data refresh schedule that runs as often as every fifteen minutes. Atualizações mais frequentes exigem um modelo de push que atualiza simultaneamente os dados no Azure Search e na fonte de dados externa.More frequent updates require a push model that simultaneously updates data in both Azure Search and your external data source.

Abordagens para criar e gerenciar indexadoresApproaches for creating and managing indexers

Você pode criar e gerenciar indexadores usando estas abordagens:You can create and manage indexers using these approaches:

Inicialmente, um novo indexador é anunciado como uma versão prévia do recurso.Initially, a new indexer is announced as a preview feature. As versões prévias do recurso são introduzidas em APIs (REST e .NET) e então integradas ao portal após a graduação para a disponibilidade geral.Preview features are introduced in APIs (REST and .NET) and then integrated into the portal after graduating to general availability. Se você estiver avaliando um novo indexador, deverá planejar escrever código.If you're evaluating a new indexer, you should plan on writing code.

PermissõesPermissions

Todas as operações relacionadas a indexadores, incluindo solicitações GET para o status ou definições, exigem um chave de api de administração.All operations related to indexers, including GET requests for status or definitions, require an admin api-key.

Fontes de dados com suporteSupported data sources

Armazenamentos de dados de rastreamento de indexadores no Azure.Indexers crawl data stores on Azure.

Observação

Não há suporte para o armazenamento de tabela do Azure para pesquisa cognitiva.Azure Table Storage is not supported for cognitive search.

Etapas da configuração básicaBasic configuration steps

Os indexadores podem oferecer recursos que são exclusivos da fonte de dados.Indexers can offer features that are unique to the data source. Nesse sentido, alguns aspectos de configuração da fonte de dados ou do indexador variam de acordo com o tipo de indexador.In this respect, some aspects of indexer or data source configuration will vary by indexer type. No entanto, todos os indexadores compartilham a mesma composição básica e os mesmos requisitos.However, all indexers share the same basic composition and requirements. As etapas que são comuns a todos os indexadores são abordadas a seguir.Steps that are common to all indexers are covered below.

Etapa 1: Criar uma fonte de dadosStep 1: Create a data source

Um indexador obtém a conexão de fonte de dados de um fonte de dados objeto.An indexer obtains data source connection from a data source object. A definição de fonte de dados fornece uma cadeia de caracteres de conexão e, possivelmente, credenciais.The data source definition provides a connection string and possibly credentials. Chame o criar fonte de dados API REST ou classe DataSource para criar o recurso.Call the Create Datasource REST API or DataSource class to create the resource.

As fontes de dados são configuradas e gerenciadas independentemente dos indexadores que as utilizam, o que significa que uma fonte de dados pode ser usada por vários indexadores para carregar mais de um índice por vez.Data sources are configured and managed independently of the indexers that use them, which means a data source can be used by multiple indexers to load more than one index at a time.

Etapa 2: Crie um índiceStep 2: Create an index

Um indexador automatizará algumas tarefas relacionadas à ingestão de dados, mas a criação de um índice não é uma delas.An indexer will automate some tasks related to data ingestion, but creating an index is generally not one of them. Como pré-requisito, você deve ter um índice predefinido com campos iguais aos da sua fonte de dados externa.As a prerequisite, you must have a predefined index with fields that match those in your external data source. Campos precisam corresponder ao nome e tipo de dados.Fields need to match by name and data type. Para saber mais sobre como estruturar um índice, confira Criar um índice (API REST do Azure Search) ou classe Índice.For more information about structuring an index, see Create an Index (Azure Search REST API) or Index class. Para obter ajuda com associações de campo, veja Mapeamento de campos em indexadores do Azure Search.For help with field associations, see Field mappings in Azure Search indexers.

Dica

Embora indexadores não consigam gerar um índice para você, o assistente de Importar dados no portal pode ajudar.Although indexers cannot generate an index for you, the Import data wizard in the portal can help. Na maioria dos casos, o assistente pode inferir um esquema de índice a partir de metadados existentes na fonte, apresentando um esquema de índice preliminar que você pode editar em linha enquanto o assistente estiver ativo.In most cases, the wizard can infer an index schema from existing metadata in the source, presenting a preliminary index schema which you can edit in-line while the wizard is active. Assim que o índice é criado no serviço, outras edições no portal são, na sua maior parte, limitadas a adicionar novos campos.Once the index is created on the service, further edits in the portal are mostly limited to adding new fields. Leve o assistente em consideração para criar, mas não para revisar um índice.Consider the wizard for creating, but not revising, an index. Para o aprendizado prático, percorra o passo a passo portal.For hands-on learning, step through the portal walkthrough.

Etapa 3: Criar e agendar o indexadorStep 3: Create and schedule the indexer

A definição do indexador é uma construção que reúne todos os elementos relacionados a ingestão de dados.The indexer definition is a construct that brings together all of the elements related to data ingestion. Elementos necessários incluem uma fonte de dados e um índice.Required elements include a data source and index. Elementos opcionais incluem uma agenda e campo mapeamentos.Optional elements include a schedule and field mappings. Mapeamento de campo só são opcionais se campos de origem e os campos de índice correspondem claramente.Field mapping are only optional if source fields and index fields clearly correspond. Um indexador pode referenciar uma fonte de dados de outro serviço, desde que a fonte de dados seja da mesma assinatura.An indexer can reference a data source from another service, as long as that data source is from the same subscription. Para saber maissobre como estruturar um indexador, confira Criar indexador (API REST do Azure Search).For more information about structuring an indexer, see Create Indexer (Azure Search REST API).

Executar indexadores sob demandaRun indexers on-demand

Embora seja comum a agenda de indexação, um indexador também pode ser invocado sob demanda usando o execute o comando:While it's common to schedule indexing, an indexer can also be invoked on demand using the Run command:

POST https://[service name].search.windows.net/indexers/[indexer name]/run?api-version=2019-05-06
api-key: [Search service admin key]

Observação

Quando a API de Execução for retornada com êxito, isso indica que a invocação do indexador foi agendada, mas o processamento real ocorre de forma assíncrona.When Run API returns successfully, the indexer invocation has been scheduled, but the actual processing happens asynchronously.

Você pode monitorar o status do indexador no portal ou por meio da API obter Status do indexador.You can monitor the indexer status in the portal or through Get Indexer Status API.

Obter status do indexadorGet indexer status

Você pode recuperar o histórico de execução e status de um indexador por meio de comando obter Status do indexador:You can retrieve the status and execution history of an indexer through the Get Indexer Status command:

GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2019-05-06
api-key: [Search service admin key]

A resposta contém o status geral do indexador, a última invocação (ou em andamento) do indexador e o histórico de invocações recentes do indexador.The response contains overall indexer status, the last (or in-progress) indexer invocation, and the history of recent indexer invocations.

{
    "status":"running",
    "lastResult": {
        "status":"success",
        "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
     },
    "executionHistory":[ {
        "status":"success",
         "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
    }]
}

O histórico de execução contém até as 50 execuções mais recentes, que são classificadas em ordem cronológica inversa (de modo que a execução mais recente fique em primeiro lugar).Execution history contains up to the 50 most recent completed executions, which are sorted in reverse chronological order (so the latest execution comes first in the response).

Próximas etapasNext steps

Agora que você tem as noções básicas, a próxima etapa é examinar os requisitos e as tarefas específicas para cada tipo de fonte de dados.Now that you have the basic idea, the next step is to review requirements and tasks specific to each data source type.