Tutorial: Use o REST e a IA para gerar conteúdo pesquisável em blobs do Azure

Se você tiver um texto não estruturado ou imagens no Armazenamento de Blobs do Azure, um pipeline de enriquecimento de IA poderá extrair informações e criar conteúdo para cenários de pesquisa de texto completo ou mineração de conhecimento.

Neste tutorial do REST, você aprenderá a:

  • Configurar um ambiente de desenvolvimento.
  • Definir um pipeline que usa OCR, detecção de idioma, reconhecimento de entidade e extração de frase-chave.
  • Executar o pipeline para invocar transformações e para criar e carregar um índice de pesquisa.
  • Explore os resultados usando a pesquisa de texto completo e uma sintaxe de consulta avançada.

Caso não tenha uma assinatura do Azure, abra uma conta gratuita antes de começar.

Visão geral

Este tutorial usa Postman e as APIs REST do Azure Cognitive Search para criar uma fonte de dados, um índice, um indexador e um conjunto de habilidades.

O indexador se conecta ao Armazenamento de Blobs do Azure e recupera o conteúdo, que você deve carregar com antecedência. Em seguida, o indexador invoca um conjunto de habilidades para processamento especializado e ingere o conteúdo enriquecido em um índice de pesquisa.

O conjunto de habilidades é anexado a um indexador. Ele usa habilidades internas da Microsoft para encontrar e extrair informações. As etapas no pipeline incluem OCR (reconhecimento óptico de caracteres) em imagens, detecção de idioma, extração de frases-chave e reconhecimento de entidades (organizações, locais e pessoas). Novas informações criadas pelo pipeline são armazenadas em novos campos em um índice. Depois que o índice for populado, você poderá usar os campos dele em consultas, facetas e filtros.

Pré-requisitos

Observação

Use o serviço gratuito para este tutorial. Um serviço de pesquisa gratuito limita você a três índices, três indexadores e três fontes de dados. Este tutorial cria um de cada. Antes de começar, reserve um espaço no seu serviço para aceitar os novos recursos.

Baixar arquivos

Os dados de exemplo são compostos por 14 arquivos com tipo de conteúdo misto que você carregará no Armazenamento de Blobs do Azure em uma etapa posterior.

  1. Obtenha os arquivos do azure-search-sample-data/ai-enrichment-mixed-media/ e copie-os para o computador local.

  2. Em seguida, obtenha o código-fonte, um arquivo de coleção do Postman, deste tutorial. O código-fonte pode ser encontrado em azure-search-postman-samples/tree/master/Tutorial.

1 – Criar serviços

Este tutorial usa o Azure Cognitive Search para indexação e consultas, os Serviços Cognitivos no back-end para enriquecimento de IA e o Armazenamento de Blobs do Azure para fornecer os dados. Este tutorial permanece sob a alocação gratuita de 20 transações por indexador por dia nos Serviços Cognitivos, de modo que os únicos serviços que você precisará criar são pesquisa e armazenamento.

Se possível, crie os dois na mesma região e no mesmo grupo de recursos para facilitar a proximidade e a capacidade de gerenciamento. Na prática, sua conta de armazenamento do Azure pode estar em qualquer região.

Começar com o Armazenamento do Azure

  1. Entre no portal do Azure e clique em + Criar Recurso.

  2. Pesquise conta de armazenamento e selecione a oferta Conta de Armazenamento da Microsoft.

    Create Storage account

  3. Na guia Informações Básicas, os itens a seguir são obrigatórios. Aceite os padrões para todo o restante.

    • Grupo de recursos. Selecione um grupo existente ou crie um, mas use o mesmo grupo para todos os serviços, de modo que você possa gerenciá-los em conjunto.

    • Nome da conta de armazenamento. Se acreditar que possa ter vários recursos do mesmo tipo, use o nome para desfazer a ambiguidade por tipo e região, por exemplo, blobstoragewestus.

    • Local. Se possível, escolha a mesma localização usada para a Pesquisa Cognitiva do Azure e os Serviços Cognitivos. Uma única localização anula os encargos de largura de banda.

    • Tipo de Conta. Escolha o padrão, StorageV2 (Uso Geral v2) .

  4. Selecione Examinar + Criar para criar o serviço.

  5. Após a criação, selecione Ir para o recurso para abrir a página Visão Geral.

  6. Selecione o serviço Blobs.

  7. Selecione + Contêiner para criar um contêiner e nomeie-o cog-search-demo.

  8. Selecione cog-search-demo e, em seguida, selecione Upload para abrir a pasta em que você salvou os arquivos de download. Selecione todos os arquivos. Escolha Carregar.

    Screenshot of the files in File Explorer.

  9. Antes de sair do Armazenamento do Azure, obtenha uma cadeia de conexão, de modo que você possa formular uma conexão na Pesquisa Cognitiva do Azure.

    1. Navegue novamente até a página Visão Geral de sua conta de armazenamento (usamos blobstragewestus como exemplo).

    2. No painel de navegação à esquerda, selecione Chaves de acesso e copie uma das cadeias de conexão.

    A cadeia de conexão é uma URL semelhante ao seguinte exemplo:

    DefaultEndpointsProtocol=https;AccountName=cogsrchdemostorage;AccountKey=<your account key>;EndpointSuffix=core.windows.net
    
  10. Salve a cadeia de conexão no Bloco de notas. Você precisará dela mais tarde ao configurar a conexão de fonte de dados.

Serviços Cognitivos

O enriquecimento de IA é apoiado pelos Serviços Cognitivos, incluindo o serviço de idioma e a Pesquisa Visual Computacional para processamento natural de imagem e idioma. Caso seu objetivo seja concluir um protótipo ou um projeto real, neste ponto, você poderá provisionar os Serviços Cognitivos (na mesma região do Azure Cognitive Search) para poder anexá-lo a um conjunto de habilidades.

Para este exercício, no entanto, ignore o provisionamento de recursos, pois o Azure Cognitive Search pode se conectar aos Serviços Cognitivos e executar 20 transações por execução do indexador, gratuitamente. Como este tutorial usa 14 transações, a alocação gratuita é suficiente. Para projetos maiores, planeje o provisionamento dos Serviços Cognitivos no nível S0 pago conforme o uso.

O terceiro componente é o Azure Cognitive Search, que você pode criar no portal ou encontrar um serviço de pesquisa existente em sua assinatura.

Use a Camada gratuita para concluir este passo a passo.

Para interagir com o serviço da Pesquisa Cognitiva do Azure, será necessária a URL de serviço e uma chave de acesso.

  1. Entre no portal do Azure e, na página Visão Geral do serviço de pesquisa, obtenha o nome de seu serviço de pesquisa. Você pode confirmar o nome do serviço examinando a URL do ponto de extremidade. Se a URL do ponto de extremidade for https://mydemo.search.windows.net, o nome do serviço será mydemo.

  2. Em Configurações>Chaves, obtenha uma chave de administração para adquirir todos os direitos sobre o serviço. Você pode copiar a chave primária ou a secundária.

    Get the service name and admin key

Todas as solicitações HTTP para um serviço de pesquisa exigem uma chave de API. Uma chave válida estabelece a relação de confiança, para cada solicitação, entre o aplicativo que envia a solicitação e o serviço que a manipula.

2 – Configurar o Postman

  1. Inicie o Postman, importe a coleção e configure as variáveis de ambiente. Se não estiver familiarizado com essa ferramenta, confira Explorar APIs REST do Azure Cognitive Search.

  2. Você precisará fornecer um nome de serviço de pesquisa, uma chave de API de administrador, um nome de índice, uma cadeia de conexão para sua conta de Armazenamento do Microsoft Azure e o nome do contêiner.

    Screenshot of the Variables page in Postman.

Os métodos de solicitação usados nesta coleção são PUT e GET. Você usará os métodos para criar uma fonte de dados, um conjunto de habilidades, um índice e um indexador.

3 – Criar o pipeline

No Azure Cognitive Search, o enriquecimento ocorre durante a indexação (ou a ingestão de dados). Esta parte do passo a passo cria quatro objetos: fonte de dados, definição de índice, conjunto de habilidades e indexador.

Etapa 1: Criar uma fonte de dados

Chame Criar fonte de dados para configurar a cadeia de conexão para o contêiner de blob que contém os arquivos de dados de exemplo.

  1. Selecione a solicitação "Criar uma fonte de dados".

  2. O corpo da solicitação é JSON e inclui propriedades de um objeto de fonte de dados do indexador. A cadeia de conexão inclui credenciais para acessar o serviço.

    {   
        "description" : "Demo files to demonstrate cognitive search capabilities.",  
        "type" : "azureblob",
        "credentials" : { 
           "connectionString": "{{azure-storage-connection-string}}"
        },  
      "container" : { 
        "name" : "{{blob-container}}"
      }
    }
    
  3. Enviar a solicitação. Você deverá ver um código de status 201 confirmando o êxito.

Se você obtiver um erro 403 ou 404, verifique a chave de API de administração de pesquisa e a cadeia de conexão do Armazenamento do Microsoft Azure.

Etapa 2: Criar um conjunto de habilidades

Chame Criar conjunto de habilidades para especificar quais etapas de enriquecimento são aplicadas ao conteúdo.

  1. Selecione a solicitação "Criar um conjunto de habilidades".

  2. O corpo da solicitação especifica as seguintes habilidades internas:

    Habilidade Descrição
    Reconhecimento óptico de caracteres Reconhece texto e números em arquivos de imagem.
    Mesclagem de texto Cria um "conteúdo mesclado" que recombina o conteúdo separado anteriormente, útil para documentos com imagens incorporadas (PDF, DOCX e assim por diante). Imagens e texto são separados na fase de quebra de documento. A habilidade de mesclagem os recombina, inserindo qualquer texto reconhecido, legendas de imagem ou marcas criadas pelo enriquecimento no mesmo local em que a imagem foi extraída no documento.

    Ao trabalhar com conteúdos mesclados em um conjunto de habilidades, esse nó será inclusivo com relação a todo o texto no documento, incluindo documentos somente com texto que nunca passam por OCR ou análise de imagem.
    Detecção de Idioma Detecta o idioma e gera um nome ou código de idioma. Em conjuntos de dados multilíngues, um campo de idioma pode ser útil para filtros.
    Reconhecimento de Entidade Extrai os nomes de pessoas, organizações e localizações do conteúdo mesclado.
    Divisão de texto Divide um conteúdo mesclado grande em partes menores antes de chamar a habilidade de extração de frases-chave. Extração de frase-chave aceita entradas de 50.000 caracteres ou menos. Alguns dos arquivos de exemplo precisam dividir para se ajustar dentro desse limite.
    Extração de Frases-chave Extrai as principais frases-chave.

    Cada uma delas executa no conteúdo do documento. Durante o processamento, a Pesquisa Cognitiva do Azure abre cada documento para ler o conteúdo de diferentes formatos de arquivo. Encontrado um texto de origem no arquivo de origem é colocado em um campo gerado content, uma para cada documento. Dessa forma, a entrada se torna "/document/content".

    Para a extração de frases-chave, como usamos a habilidade de divisor de texto para dividir arquivos maiores em páginas, o contexto para a habilidade de extração de frases-chave é "document/pages/*" (para cada página no documento) em vez de "/document/content".

    {
      "description": "Apply OCR, detect language, extract entities, and extract key-phrases.",
      "cognitiveServices": null,
      "skills":
      [
        {
          "@odata.type": "#Microsoft.Skills.Vision.OcrSkill",
          "context": "/document/normalized_images/*",
          "defaultLanguageCode": "en",
          "detectOrientation": true,
          "inputs": [
            {
              "name": "image",
              "source": "/document/normalized_images/*"
            }
          ],
          "outputs": [
            {
              "name": "text"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.MergeSkill",
          "description": "Create merged_text, which includes all the textual representation of each image inserted at the right location in the content field. This is useful for PDF and other file formats that supported embedded images.",
          "context": "/document",
          "insertPreTag": " ",
          "insertPostTag": " ",
          "inputs": [
            {
              "name":"text", 
              "source": "/document/content"
            },
            {
              "name": "itemsToInsert", 
              "source": "/document/normalized_images/*/text"
            },
            {
              "name":"offsets", 
              "source": "/document/normalized_images/*/contentOffset" 
            }
          ],
          "outputs": [
            {
              "name": "mergedText", 
              "targetName" : "merged_text"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
          "textSplitMode": "pages",
          "maximumPageLength": 4000,
          "defaultLanguageCode": "en",
          "context": "/document",
          "inputs": [
            {
              "name": "text",
              "source": "/document/merged_text"
            }
          ],
          "outputs": [
            {
              "name": "textItems",
              "targetName": "pages"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill",
          "description": "If you have multilingual content, adding a language code is useful for filtering",
          "context": "/document",
          "inputs": [
            {
              "name": "text",
              "source": "/document/merged_text"
            }
          ],
          "outputs": [
            {
              "name": "languageName",
              "targetName": "language"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill",
          "context": "/document/pages/*",
          "inputs": [
            {
              "name": "text",
              "source": "/document/pages/*"
            }
          ],
          "outputs": [
            {
              "name": "keyPhrases",
              "targetName": "keyPhrases"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
          "categories": ["Organization"],
          "context": "/document",
          "inputs": [
            {
              "name": "text",
              "source": "/document/merged_text"
            }
          ],
          "outputs": [
            {
              "name": "organizations",
              "targetName": "organizations"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
          "categories": ["Location"],
          "context": "/document",
          "inputs": [
            {
              "name": "text",
              "source": "/document/merged_text"
            }
          ],
          "outputs": [
            {
              "name": "locations",
              "targetName": "locations"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
          "categories": ["Person"],
          "context": "/document",
          "inputs": [
            {
              "name": "text",
              "source": "/document/merged_text"
            }
          ],
          "outputs": [
            {
              "name": "persons",
              "targetName": "persons"
            }
          ]
        }
      ]
    }
    

    Uma representação gráfica de parte do conjunto de habilidades é mostrada abaixo.

    Understand a skillset

  3. Enviar a solicitação. O Postman deverá retornar um código de status 201 confirmando o êxito.

Observação

Saídas podem ser mapeadas para um índice usado como entrada para uma habilidade de downstream, ou ambos, como é o caso com o código de idioma. No índice, um código de idioma é útil para filtragem. Para obter mais informações sobre conceitos básicos do conjunto de qualificações, consulte como definir um conjunto de qualificações.

Etapa 3: Crie um índice

Chame Criar índice para fornecer o esquema usado para criar índices invertidos e outros constructos no Azure Cognitive Search. O maior componente de um índice é a coleção de campos, em que o tipo de dados e os atributos determinam o conteúdo e o comportamento no Azure Cognitive Search.

  1. Selecione a solicitação "Criar um índice".

  2. O corpo da solicitação define o esquema do índice de pesquisa. Uma coleção de campos requer que um campo seja designado como chave. Para conteúdo de blob, esse campo é geralmente o "metadata_storage_path" que identifica exclusivamente cada blob no contêiner.

    Nesse esquema, o campo "texto" recebe a saída de OCR, "conteúdo" recebe a saída mesclada, "idioma" recebe a saída de detecção de idioma. Frases-chave, entidades e vários campos extraídos do armazenamento de blob compreendem as entradas restantes.

    {
      "fields": [
        {
          "name": "text",
          "type": "Collection(Edm.String)",
          "searchable": true,
          "sortable": false,
          "filterable": true,
          "facetable": false
        },
        {
          "name": "content",
          "type": "Edm.String",
          "searchable": true,
          "sortable": false,
          "filterable": false,
          "facetable": false
        },
        {
          "name": "language",
          "type": "Edm.String",
          "searchable": false,
          "sortable": true,
          "filterable": true,
          "facetable": false
        },
        {
          "name": "keyPhrases",
          "type": "Collection(Edm.String)",
          "searchable": true,
          "sortable": false,
          "filterable": true,
          "facetable": true
        },
        {
          "name": "organizations",
          "type": "Collection(Edm.String)",
          "searchable": true,
          "sortable": false,
          "filterable": true,
          "facetable": true
        },
        {
          "name": "persons",
          "type": "Collection(Edm.String)",
          "searchable": true,
          "sortable": false,
          "filterable": true,
          "facetable": true
        },
        {
          "name": "locations",
          "type": "Collection(Edm.String)",
          "searchable": true,
          "sortable": false,
          "filterable": true,
          "facetable": true
        },
        {
          "name": "metadata_storage_path",
          "type": "Edm.String",
          "key": true,
          "searchable": true,
          "sortable": false,
          "filterable": false,
          "facetable": false
        },
        {
          "name": "metadata_storage_name",
          "type": "Edm.String",
          "searchable": true,
          "sortable": false,
          "filterable": false,
          "facetable": false
        }
      ]
    }
    
  3. Enviar a solicitação. O Postman deverá retornar um código de status 201 confirmando o êxito.

Etapa 4: Criar e executar um indexador

Chame Criar indexador para conduzir o pipeline. Os três componentes que você criou até o momento (fonte de dados, conjunto de habilidades e índice) são entradas para um indexador. A criação do indexador na Pesquisa Cognitiva do Azure é o evento que coloca todo o pipeline em movimento.

  1. Selecione a solicitação "Criar um indexador".

  2. O corpo da solicitação inclui referências aos objetos anteriores, as propriedades de configuração necessárias para o processamento de imagens e dois tipos de mapeamentos de campo.

    Os "fieldMappings" são processados antes do conjunto de habilidades, enviando o conteúdo da fonte de dados para os campos de destino em um índice. Você usará mapeamentos de campo para enviar o conteúdo existente e não modificado ao índice. Se os tipos e os nomes do campo forem os mesmos em ambas as extremidades, nenhum mapeamento será necessário.

    "outputFieldMappings" são para campos criados por habilidades, após a execução do conjunto de habilidades. As referências a sourceFieldName em outputFieldMappings não existirão enquanto a quebra de documento ou o enriquecimento não as criar. O targetFieldName é um campo em um índice, definido no esquema de índice.

    {
      "dataSourceName" : "{{index_name}}-datasource",
      "targetIndexName" : "{{index_name}}",
      "skillsetName" : "{{index_name}}-skillset",
      "fieldMappings" : [
            {
              "sourceFieldName" : "metadata_storage_path",
              "targetFieldName" : "metadata_storage_path",
              "mappingFunction" : { "name" : "base64Encode" }
            },
            {
            	"sourceFieldName": "metadata_storage_name",
            	"targetFieldName": "metadata_storage_name"
            }
       ],
      "outputFieldMappings" : 
    	[
    		{
            	"sourceFieldName": "/document/merged_text",
            	"targetFieldName": "content"
            },
            {
                "sourceFieldName" : "/document/normalized_images/*/text",
                "targetFieldName" : "text"
            },
      		{
              "sourceFieldName" : "/document/organizations", 
              "targetFieldName" : "organizations"
            },
            {
            	"sourceFieldName": "/document/language",
            	"targetFieldName": "language"
            },
      		{
              "sourceFieldName" : "/document/persons", 
              "targetFieldName" : "persons"
            },
      		{
              "sourceFieldName" : "/document/locations", 
              "targetFieldName" : "locations"
            },
            {
              "sourceFieldName" : "/document/pages/*/keyPhrases/*", 
              "targetFieldName" : "keyPhrases"
            }
        ],
      "parameters":
      {
    	"batchSize": 1,
      	"maxFailedItems":-1,
      	"maxFailedItemsPerBatch":-1,
      	"configuration": 
    	{
        	"dataToExtract": "contentAndMetadata",
        	"imageAction": "generateNormalizedImages"
    	}
      }
    }
    
  3. Enviar a solicitação. O Postman deverá retornar um código de status 201 confirmando o processamento bem-sucedido.

    Espere essa ação levar vários minutos para ser concluída. Embora o conjunto de dados é pequeno, capacidades analíticas são intensivas na computação.

Observação

Criar um indexador invoca o pipeline. Se houver problemas ao acessar os dados, as entradas de mapeamento e saídas ou ordem de operações, eles aparecem neste estágio. Para executar novamente o pipeline com as alterações de código ou script, você precisará primeiro descarte de objetos. Para saber mais, confira Reiniciar e Reexecutar.

Sobre os parâmetros do indexador

O script define "maxFailedItems" como -1, o que instrui o mecanismo de indexação a ignorar erros durante a importação de dados. Isso é aceitável porque há poucos documentos na fonte de dados de demonstração. Para uma fonte de dados maior, você definirá o valor maior que 0.

A instrução "dataToExtract":"contentAndMetadata" instrui o indexador a extrair automaticamente o conteúdo de diferentes formatos de arquivo, bem como os metadados relacionados a cada arquivo.

Quando o conteúdo é extraído, você pode definir imageAction para extrair o texto da imagem foi encontrada na fonte de dados. A configuração "imageAction":"generateNormalizedImages", combinada com a Habilidade de OCR e a Habilidade de Mesclagem de Texto, instrui o indexador a extrair o texto das imagens (por exemplo, a palavra "pare" de uma placa de trânsito "Pare") e inseri-la como parte do campo de conteúdo. Esse comportamento se aplica a ambas as imagens inseridas nos documentos (imagine uma imagem dentro de um PDF), bem como imagens encontradas na fonte de dados, por exemplo um arquivo JPG.

4 – Monitorar a indexação

A indexação e o enriquecimento são iniciados assim que você envia a solicitação Criar Indexador. Dependendo das habilidades cognitivas definidas, a indexação pode levar algum tempo.

Para descobrir se o indexador ainda está em execução, chame Obter status do indexador a fim de verificar o status do indexador.

  1. Selecione e envie a solicitação "Verificar status do indexador".

  2. Examine a resposta para saber se o indexador está em execução ou para exibir informações de erro e aviso.

Os avisos são comuns em alguns cenários e nem sempre indicam um problema. Por exemplo, se um contêiner de blobs incluir arquivos de imagem e o pipeline não tratar imagens, você receberá um aviso informando que as imagens não foram processadas.

Neste exemplo, há um arquivo PNG que não contém texto. As cinco habilidades baseadas em texto (detecção de idioma, reconhecimento de entidades de locais, organizações, pessoas e extração de frases-chave) falham ao executar nesse arquivo. A notificação resultante é exibida no histórico de execução.

Agora que você criou um índice com conteúdo gerado por IA, chame Pesquisar documentos para executar algumas consultas e ver os resultados.

Lembre-se de que começamos com o conteúdo do blob, em que todo o documento é empacotado em um único campo content. Pesquise esse campo e encontre correspondências para as consultas.

  1. Abra a solicitação de "pesquisa" e execute-a para dar uma primeira olhada no conteúdo do índice. Essa solicitação é uma pesquisa vazia ("search = *"), portanto, ela retornará o conteúdo para cada um dos 14 documentos. O parâmetro $select restringe os resultados ao nome do arquivo, ao nome do idioma e a uma das entidades reconhecidas.

     GET /indexes//{{index_name}}/docs?search=*&$select=metadata_storage_name,language,organizations&$count=true&api-version=2020-06-30
    
  2. Revise a consulta anterior para pesquisar "criando oportunidades sem limite". Essa frase foi obtida por meio do OCR de um arquivo de imagem incorporada em um documento PDF. Inclua "realce" para aplicar a formatação aos termos correspondentes em campos densamente populados.

     GET /indexes//{{index_name}}/docs?search=creating boundaryless opportunities&$select=content&highlight=content&$count=true&api-version=2020-06-30
    
  3. Para a próxima consulta, aplique um filtro. Lembre-se de que o campo de idioma e todos os campos de entidade são filtráveis.

     GET /indexes/{{index_name}}/docs?search=*&$filter=organizations/any(organizations: organizations eq 'NASDAQ')&$select=metadata_storage_name,organizations&$count=true&api-version=2020-06-30
    

Essas consultas ilustram algumas das maneiras pelas quais você pode trabalhar com a sintaxe de consulta e os filtros em campos criados pela pesquisa cognitiva. Para obter mais exemplos de consulta, confira Exemplos em documentos de pesquisa da API REST, Exemplos de consulta de sintaxe simples e Exemplos de consulta completas do Lucene.

Redefinir e execute novamente

Nas fases iniciais do desenvolvimento, a iteração no design é comum. Provavelmente, você excluirá e recriará os mesmos objetos com frequência.

Se você usar o portal para exclusão e excluir o indexador primeiro, o portal solicitará a exclusão dos objetos associados.

Delete search objects

Você também pode usar DELETE e fornecer URLs a cada objeto. O comando a seguir exclui um indexador.

DELETE https://[YOUR-SERVICE-NAME].search.windows.net/indexers/cog-search-demo-idxr?api-version=2020-06-30

Código de status 204 é retornado na exclusão com êxito.

Observações

Este tutorial demonstra as etapas básicas para a criação de um pipeline de indexação enriquecido durante a criação de componentes: uma fonte de dados, o conjunto de qualificações, o índice e o indexador.

Habilidades internas foram introduzidas, junto com a definição de conjunto de qualificações e a mecânica de encadear habilidades por meio de entradas e saídas. Você também aprendeu que outputFieldMappings na definição do indexador é necessário para encaminhar valores enriquecidos do pipeline em um índice pesquisável em um serviço da Pesquisa Cognitiva do Azure.

Por fim, você aprendeu como resultados de teste e reinicie o sistema para obter mais iterações. Você aprendeu que emitir consultas em relação ao índice retorna a saída criada pelo pipeline de indexação enriquecido.

Limpar os recursos

Quando você está trabalhando em sua própria assinatura, no final de um projeto, é uma boa ideia remover os recursos que já não são necessários. Recursos deixados em execução podem custar dinheiro. Você pode excluir os recursos individualmente ou excluir o grupo de recursos para excluir todo o conjunto de recursos.

Encontre e gerencie recursos no portal usando o link Todos os recursos ou Grupos de recursos no painel de navegação à esquerda.

Próximas etapas

Agora que você está familiarizado com todos os objetos de um pipeline de enriquecimento de IA, vamos examinar mais de perto as definições de conjunto de habilidades e as habilidades individuais.