Importação de dados na IA do Azure Search
Na IA do Azure Search, as consultas são executadas no conteúdo de propriedade do usuário que é carregado em um índice de pesquisa. Este artigo descreve os dois fluxos de trabalho básicos para preencher um índice: efetuar push dos dados para o índice programaticamente ou efetuar pull dos dados usando um indexador de pesquisa.
Ambas as abordagens carregam documentos de uma fonte de dados externa. Embora você possa criar um índice vazio, ele não poderá ser consultado até que você adicione o conteúdo.
Observação
Se o enriquecimento de IA ou a vetorização integrada forem requisitos de solução, você precisará usar o modelo de pull (indexadores) para carregar um índice. Os conjuntos de habilidades são anexados a um indexador e não são executados de maneira independente.
Envio por push de dados para um índice
O modelo de push é uma abordagem que usa APIs para carregar documentos em um índice de pesquisa existente. Você pode carregar documentos individualmente ou em lotes de até 1000 por lote ou 16 MB por lote, o que chegar primeiro.
Entre os principais benefícios estão:
Não tem restrições de tipo de fonte de dados. O conteúdo deve ser composto por documentos JSON que mapeiam para o esquema de índice, mas os dados podem ser originados de qualquer lugar.
Não tem nenhuma restrição de frequência de execução. Você pode enviar por push as alterações para um índice sempre que desejar. Para aplicativos com requisitos de baixa latência (por exemplo, quando o índice precisar estar sincronizado com as flutuações do inventário do produto), o modelo de push é a única opção.
A conectividade e a recuperação segura de documentos estão totalmente sob seu controle. Por outro lado, as conexões do indexador são autenticadas usando os recursos de segurança fornecidos na IA do Azure Search.
Como enviar dados por push para um índice da IA do Azure Search
Use as APIs a seguir para carregar um ou vários documentos em um índice:
- Documentos de índice (API REST)
- IndexDocumentsAsync (SDK do Azure para .NET) ou SearchIndexingBufferedSender
- IndexDocumentsBatch (SDK do Azure para Python) ou SearchIndexingBufferedSender
- IndexDocumentsBatch (SDK do Azure para Java) ou SearchIndexingBufferedSender
- IndexDocumentsBatch (SDK do Azure para JavaScript) ou SearchIndexingBufferedSender
Não há suporte para enviar dados por push por meio do portal do Azure.
Para obter uma introdução às APIs de push, consulte:
- Início Rápido: pesquisa de texto completo usando os SDKs do Azure
- Tutorial do C#: otimizar a indexação com a API de push
- Início Rápido REST: criar um índice da IA do Azure Search usando o PowerShell
Ações de indexação: upload, merge, mergeOrUpload, delete
Você pode controlar o tipo de ação de indexação por documento, especificando se o documento deve ser carregado por completo, mesclado com o conteúdo do documento existente ou excluído.
Se você usa a API REST ou um SDK do Azure, as seguintes operações de documento têm suporte para importação de dados:
Upload, semelhante a um “upsert”, em que o documento será inserido se for novo e será atualizado/ ou substituído se existir. Se o documento tiver valores ausentes que o índice requer, o valor do campo do documento será definido como nulo.
merge atualiza um documento que já existe e reprova um documento que não pode ser encontrado. Merge substitui os valores existentes. Por esse motivo, verifique se há campos de coleção que contêm vários valores, como campos do tipo
Collection(Edm.String)
. Por exemplo, se um campotags
começar com um valor de["budget"]
e você executar uma mesclagem com["economy", "pool"]
, o valor final do campotags
será["economy", "pool"]
. Não será["budget", "economy", "pool"]
.mergeOrUpload se comportará como merge se o documento existir e upload se o documento for novo.
delete remove o documento inteiro do índice. Se você quiser remover um campo individual, use merge em vez disso, definindo o campo em questão como nulo.
Pull de dados para um índice
O modelo de pull usa indexadores se conectando a uma fonte de dados com suporte, carregando automaticamente os dados em seu índice. Os indexadores da Microsoft estão disponíveis para estas plataformas:
- Armazenamento de Blobs do Azure
- Armazenamento de Tabelas do Azure
- Azure Data Lake Storage Gen2
- Arquivos do Azure (versão prévia)
- Azure Cosmos DB
- Banco de Dados SQL do Azure, Instância Gerenciada de SQL e SQL Server em VMs do Azure
- Arquivos e atalhos do OneLake
- SharePoint Online (versão prévia)
Você pode usar conectores de terceiros, desenvolvidos e mantidos por parceiros da Microsoft. Para obter mais informações e links, consulte Galeria de fontes de dados.
Indexadores conectam um índice a uma fonte de dados (geralmente uma tabela, exibição ou estrutura equivalente) e mapeiam campos de origem para os campos equivalentes no índice. Durante a execução, o conjunto de linhas é automaticamente transformado em JSON e carregado no índice especificado. Todos os indexadores suportam agendamentos para que você possa especificar com que frequência os dados devem ser atualizados. A maioria dos indexadores fornece controle de alterações se a fonte de dados oferecer suporte a isso. Rastreando as alterações e as exclusões para os documentos existentes, além de reconhecer novos documentos, os indexadores dispensam a necessidade de gerenciar ativamente os dados no índice.
Como efetuar o pull de dados em um índice da IA do Azure Search
Use as seguintes ferramentas e APIs para indexação baseada em indexador:
- Assistente de importação de dados ou assistente de importação e vetorização de dados
- APIs REST: criar indexador (REST), criar fonte de dados (REST), criar índice (REST)
- SDK do Azure para .NET: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- SDK do Azure para Python: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- Azure SDK para Java: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- Azure SDK para JavaScript: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
A funcionalidade de indexador é exposta no [Portal do Azure], na API REST e no SDK do .NET.
Uma vantagem de usar o portal é que a IA do Azure Search geralmente pode gerar um esquema de índice padrão lendo os metadados dos conjuntos de dados de origem.
Verificar a importação de dados com o Search Explorer
Uma maneira rápida de executar uma verificação preliminar sobre o upload do documento é usar o Gerenciador de pesquisa no portal.
O explorador permite consultar um índice sem precisar escrever código. A experiência de pesquisa se baseia nas configurações padrão, como a sintaxe simples e padrão searchMode query parameter. Os resultados são retornados em JSON para que você possa inspecionar o documento inteiro.
Este é um exemplo de consulta que você pode executar no Gerenciador de pesquisa na exibição do JSON. O "HotelId" é a chave do documento de hotels-sample-index. O filtro fornece a ID de documento de um documento específico:
{
"search": "*",
"filter": "HotelId eq '50'"
}
Se você estiver usando REST, essa Consulta de pesquisa terá a mesma finalidade.