Pesquisar sobre o conteúdo do Armazenamento de Blobs do Azure

Pesquisar na variedade de tipos de conteúdo armazenados no Armazenamento de Blobs do Azure pode ser um problema difícil de resolver, mas o Azure AI Search fornece integração profunda na camada de conteúdo, extraindo e inferindo informações textuais, que podem ser consultadas em um índice de pesquisa.

Neste artigo, revise o fluxo de trabalho básico para extrair conteúdo e metadados de blobs e enviá-los para um índice de pesquisa no Azure AI Search. O índice resultante pode ser consultado usando a pesquisa de texto completo. Opcionalmente, você pode enviar conteúdo de blob processado para um repositório de conhecimento para cenários que não sejam de pesquisa.

Nota

Já está familiarizado com o fluxo de trabalho e composição? Configurar um indexador de blob é sua próxima etapa.

O que significa adicionar pesquisa de texto completo aos dados de blob

O Azure AI Search é um serviço de pesquisa autónomo que suporta cargas de trabalho de indexação e consulta sobre índices definidos pelo utilizador que contêm o seu conteúdo pesquisável privado alojado na nuvem. Colocalizar seu conteúdo pesquisável com o mecanismo de consulta na nuvem é necessário para o desempenho, retornando resultados em uma velocidade que os usuários esperam das consultas de pesquisa.

O Azure AI Search integra-se ao Armazenamento de Blobs do Azure na camada de indexação, importando seu conteúdo de blob como documentos de pesquisa indexados em índices invertidos e outras estruturas de consulta que oferecem suporte a consultas de texto de forma livre e expressões de filtro. Como seu conteúdo de blob é indexado em um índice de pesquisa, você pode usar a gama completa de recursos de consulta na Pesquisa de IA do Azure para encontrar informações em seu conteúdo de blob.

As entradas são seus blobs, em um único contêiner, no Armazenamento de Blobs do Azure. Os blobs podem ser praticamente qualquer tipo de dados de texto. Se seus blobs contiverem imagens, você poderá adicionar enriquecimento de IA para criar e extrair texto e recursos de imagens.

A saída é sempre um índice do Azure AI Search, usado para pesquisa rápida de texto, recuperação e exploração em aplicativos cliente. No meio está a própria arquitetura do pipeline de indexação. O pipeline é baseado no recurso indexador, discutido mais adiante neste artigo.

Depois que o índice é criado e preenchido, ele existe independentemente do contêiner de blob, mas você pode executar novamente as operações de indexação para atualizar o índice com base em documentos alterados. As informações de carimbo de data/hora em blobs individuais são usadas para deteção de alterações. Você pode optar pela execução agendada ou pela indexação sob demanda como o mecanismo de atualização.

Recursos usados em uma solução de pesquisa de blob

Você precisa do Azure AI Search, do Armazenamento de Blobs do Azure e de um cliente. O Azure AI Search normalmente é um dos vários componentes em uma solução, onde o código do aplicativo emite solicitações de API de consulta e lida com a resposta. Você também pode escrever código de aplicativo para lidar com a indexação, embora para testes de prova de conceito e tarefas improvisadas, seja comum usar o portal do Azure como o cliente de pesquisa.

No Armazenamento de Blob, você precisará de um contêiner que forneça conteúdo de origem. Você pode definir critérios de inclusão e exclusão de arquivo e especificar quais partes de um blob são indexadas no Azure AI Search.

Você pode começar diretamente na página do portal da Conta de Armazenamento.

  1. Na página de navegação esquerda, em Gerenciamento de dados, selecione Azure AI Search para selecionar ou criar um serviço de pesquisa.

  2. Siga as etapas no assistente para extrair e, opcionalmente, criar conteúdo pesquisável a partir de seus blobs. O fluxo de trabalho é o assistente Importar dados. O fluxo de trabalho cria um indexador, fonte de dados, índice e conjunto de habilidades de opção em seu serviço Azure AI Search.

    Captura de ecrã do assistente Azure AI Search na página do portal de Armazenamento do Azure.

  3. Use o explorador de pesquisa na página do portal de pesquisa para consultar seu conteúdo.

O assistente é o melhor lugar para começar, mas você descobrirá opções mais flexíveis quando configurar um indexador de blob por conta própria. Você pode usar um cliente REST. Tutorial: Indexar e pesquisar dados semiestruturados (blobs JSON) orienta você pelas etapas de chamada da API REST.

Como os blobs são indexados

Por padrão, a maioria dos blobs é indexada como um único documento de pesquisa no índice, incluindo blobs com conteúdo estruturado, como JSON ou CSV, que são indexados como um único pedaço de texto. No entanto, para documentos JSON ou CSV que têm uma estrutura interna (delimitadores), você pode atribuir modos de análise para gerar documentos de pesquisa individuais para cada linha ou elemento:

Um documento composto ou incorporado (como um arquivo ZIP, um documento do Word com email do Outlook incorporado contendo anexos ou um arquivo . MSG com anexos) também é indexado como um único documento. Por exemplo, todas as imagens extraídas dos anexos de um arquivo . O arquivo MSG será retornado no campo normalized_images. Se você tiver imagens, considere adicionar enriquecimento de IA para obter mais utilidade de pesquisa desse conteúdo.

O conteúdo textual de um documento é extraído em um campo de cadeia de caracteres chamado "conteúdo". Você também pode extrair metadados padrão e definidos pelo usuário.

Nota

O Azure AI Search impõe limites de indexador à quantidade de texto que extrai, dependendo do nível de preço. Um aviso aparecerá na resposta de status do indexador se os documentos estiverem truncados.

Usar um indexador de blob para extração de conteúdo

Um indexador é um subserviço com reconhecimento de fonte de dados no Azure AI Search, equipado com lógica interna para amostragem de dados, leitura e recuperação de dados e metadados e serialização de dados de formatos nativos em documentos JSON para importação subsequente.

Os blobs no Armazenamento do Azure são indexados usando o indexador de blob. Você pode invocar esse indexador usando o comando Azure AI Search no Armazenamento do Azure, o assistente Importar dados , uma API REST ou o SDK do .NET. No código, você usa esse indexador definindo o tipo e fornecendo informações de conexão que incluem uma conta de Armazenamento do Azure junto com um contêiner de blob. Você pode subdefinir seus blobs criando um diretório virtual, que pode ser passado como parâmetro, ou filtrando em uma extensão de tipo de arquivo.

Um indexador "quebra um documento", abrindo um blob para inspecionar o conteúdo. Depois de se conectar à fonte de dados, é a primeira etapa do pipeline. Para dados de blob, é aqui que PDF, documentos do Office e outros tipos de conteúdo são detetados. A quebra de documentos com extração de texto não é gratuita. Se seus blobs contiverem conteúdo de imagem, as imagens serão ignoradas, a menos que você adicione enriquecimento de IA. A indexação padrão aplica-se apenas ao conteúdo de texto.

O indexador de blob do Azure vem com parâmetros de configuração e dá suporte ao controle de alterações se os dados subjacentes fornecerem informações suficientes. Você pode saber mais sobre a funcionalidade principal em dados de índice do Armazenamento de Blobs do Azure.

Escalões de acesso suportados

Os níveis de acesso ao armazenamento de Blob incluem hot, cool e archive. Apenas quente e frio podem ser acessados por indexadores.

Tipos de conteúdo suportados

Ao executar um indexador de blob em um contêiner, você pode extrair texto e metadados dos seguintes tipos de conteúdo com uma única consulta:

  • CSV (consulte Indexação de blobs CSV)
  • EML
  • EPUB
  • GZ
  • HTML
  • JSON (consulte Indexação de blobs JSON)
  • KML (XML para representações geográficas)
  • Formatos do Microsoft Office: DOCX/DOC/DOCM, XLSX/XLS/XLSM, PPTX/PPT/PPTM, MSG (e-mails do Outlook), XML (XML WORD de 2003 e 2006)
  • Formatos de documentos abertos: ODT, ODS, ODP
  • PDF
  • Arquivos de texto sem formatação (consulte também Indexação de texto sem formatação)
  • RTF
  • XML
  • CEP

Controlando quais blobs são indexados

Você pode controlar quais blobs são indexados e quais são ignorados pelo tipo de arquivo do blob ou definindo propriedades no próprio blob, fazendo com que o indexador os ignore.

Inclua extensões de arquivo específicas definindo "indexedFileNameExtensions" como uma lista separada por vírgulas de extensões de arquivo (com um ponto à esquerda). Exclua extensões de arquivo específicas definindo "excludedFileNameExtensions" as extensões que devem ser ignoradas. Se a mesma extensão estiver em ambas as listas, ela será excluída da indexação.

PUT /indexers/[indexer name]?api-version=2023-11-01
{
    "parameters" : { 
        "configuration" : { 
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpeg" 
        } 
    }
}

Adicionar metadados "ignorar" o blob

Os parâmetros de configuração do indexador se aplicam a todos os blobs no contêiner ou pasta. Às vezes, você deseja controlar como os blobs individuais são indexados.

Adicione as seguintes propriedades e valores de metadados aos blobs no Armazenamento de Blobs. Quando o indexador encontrar essa propriedade, ele ignorará o blob ou seu conteúdo na execução de indexação.

Nome da propriedade Valor do imóvel Explicação
"AzureSearch_Skip" "true" Instrui o indexador de blob a ignorar completamente o blob. Nem metadados nem extração de conteúdo são tentados. Isso é útil quando um blob específico falha repetidamente e interrompe o processo de indexação.
"AzureSearch_SkipContent" "true" Isso é equivalente à "dataToExtract" : "allMetadata" configuração descrita acima com escopo para um blob específico.

Indexação de metadados de blob

Um cenário comum que facilita a classificação de blobs de qualquer tipo de conteúdo é indexar metadados personalizados e propriedades do sistema para cada blob. Desta forma, as informações de todos os blobs são indexadas independentemente do tipo de documento, armazenadas num índice no seu serviço de pesquisa. Usando seu novo índice, você pode continuar a classificar, filtrar e facetar todo o conteúdo de armazenamento de Blob.

Nota

As tags de Índice de Blob são indexadas nativamente pelo serviço de armazenamento de Blob e expostas para consulta. Se os atributos de chave/valor de seus blobs exigirem recursos de indexação e filtragem, as tags de Índice de Blob deverão ser aproveitadas em vez de metadados.

Para saber mais sobre o Índice de Blob, consulte Gerenciar e localizar dados no Armazenamento de Blobs do Azure com Índice de Blob.

Conteúdo de blob de pesquisa em um índice de pesquisa

A saída de um indexador é um índice de pesquisa, usado para exploração interativa usando texto livre e consultas filtradas em um aplicativo cliente. Para exploração inicial e verificação do conteúdo, recomendamos começar com o Search Explorer no portal para examinar a estrutura do documento. No explorador de pesquisa, você pode usar:

Uma solução mais permanente é reunir entradas de consulta e apresentar a resposta como resultados de pesquisa em um aplicativo cliente. O tutorial em C# a seguir explica como criar um aplicativo de pesquisa: Adicionar pesquisa a um aplicativo ASP.NET Core (MVC).

Próximos passos