Importação de dados no Azure AI Search
No Azure AI Search, as consultas são executadas sobre 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: enviar seus dados para o índice programaticamente ou extrair os 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 pode ser consultado até que você adicione o conteúdo.
Nota
Se o enriquecimento de IA ou a vetorização integrada forem requisitos de solução, você deverá usar o modelo pull (indexadores) para carregar um índice. Os conjuntos de habilidades são anexados a indexadores e não são executados de forma independente.
Enviar dados para um índice
O modelo de push é uma abordagem que usa APIs para carregar documentos em um índice de pesquisa existente. Pode carregar documentos individualmente ou em lotes até 1000 por lote, ou 16 MB por lote, consoante o limite que ocorrer primeiro.
Os principais benefícios incluem:
Sem restrições quanto ao tipo de fonte de dados. A carga útil deve ser composta por documentos JSON mapeados para seu esquema de índice, mas os dados podem ser originados de qualquer lugar.
Sem restrições quanto à frequência de execução. Pode enviar alterações para os índices tantas vezes quanto quiser. Para aplicativos com requisitos de baixa latência (por exemplo, quando o índice precisa estar sincronizado com as flutuações do estoque de produtos), o modelo push é sua ú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 no Azure AI Search.
Como enviar dados por push para um índice do Azure AI Search
Use as seguintes APIs 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 envio por push de dados por meio do portal do Azure.
Para obter uma introdução às APIs push, consulte:
- Guia de início rápido: pesquisa de texto completo usando os SDKs do Azure
- Tutorial em C#: Otimizar a indexação com a API push
- Guia de início rápido REST: criar um índice de Pesquisa de IA do Azure 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 na íntegra, mesclado com o conteúdo do documento existente ou excluído.
Quer utilize 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" onde o documento é inserido, se for novo, e atualizado ou substituído, se existir. Se o documento estiver faltando valores que o índice exige, o valor do campo do documento é definido como null.
Mesclar atualiza um documento que já existe e falha em um documento que não pode ser encontrado. A mesclagem substitui os valores existentes. Por esse motivo, certifique-se de verificar se há campos de coleta que contenham vários valores, como campos do tipo
Collection(Edm.String)
. Por exemplo, se umtags
campo começar com um valor de["budget"]
e você executar uma mesclagem com["economy", "pool"]
, o valor final dotags
campo será["economy", "pool"]
. Não será["budget", "economy", "pool"]
.mergeOrUpload comporta-se como mesclar se o documento existir e carregar se o documento for novo.
delete remove todo o documento do índice. Se você quiser remover um campo individual, use mesclar em vez disso, definindo o campo em questão como nulo.
Extrair dados para um índice
O modelo pull usa indexadores que se conectam a uma fonte de dados suportada, 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 (Armazenamento do Azure Data Lake Gen2)
- Arquivos do Azure (visualização)
- BD do Cosmos para o Azure
- Banco de Dados SQL do Azure, Instância Gerenciada SQL e SQL Server em VMs do Azure
- Arquivos e atalhos do OneLake
- SharePoint Online (pré-visualização)
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.
Os indexadores ligam índices a uma origem de dados (geralmente, uma tabela, vista ou estrutura equivalente) e mapeiam os campos da origem para os campos equivalentes nos índices. Durante a execução, o conjunto de linhas é automaticamente transformado em JSON e carregado para o índice especificado. Todos os indexadores suportam agendas para que você possa especificar com que frequência os dados devem ser atualizados. A maioria dos indexadores disponibilizam o registo de alterações, se as origens de dados o suportarem. Os indexadores, através do registo de alterações e eliminações aos documentos existentes, além do reconhecimento de novos documentos, suprimem a gestão ativa dos dados no índice.
Como extrair dados para um índice do Azure AI 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,
- SDK do Azure para Java: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- SDK do Azure para JavaScript: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
A funcionalidade do indexador é exposta no [portal do Azure], na API REST e no SDK do .NET.
Uma vantagem de usar o portal do Azure é que o Azure AI Search geralmente pode gerar um esquema de índice padrão lendo os metadados do conjunto de dados de origem.
Verificar a importação de dados com o explorador de Pesquisa
Uma maneira rápida de executar uma verificação preliminar no carregamento de documentos é usar o Gerenciador de Pesquisa no portal do Azure.
O explorador permite-lhe consultar índices sem ter de escrever qualquer código. A experiência de pesquisa baseia-se em predefinições, como a sintaxe simples e o parâmetro de consulta searchMode predefinido. Os resultados são devolvidos em JSON, de modo a que possa inspecionar todo o documento.
Aqui está um exemplo de consulta que você pode executar no Search Explorer no modo JSON. O "HotelId" é a chave de documento do índice de amostra de hotéis. O filtro fornece o ID do documento de um documento específico:
{
"search": "*",
"filter": "HotelId eq '50'"
}
Se você estiver usando REST, esta consulta Pesquisar alcançará a mesma finalidade.