Etapa 2 - Criar e carregar o índice de pesquisa com o .NET

Continue a criar seu site habilitado para pesquisa seguindo estas etapas:

Criar um recurso de Pesquisa de IA do Azure

Crie um novo recurso de pesquisa a partir da linha de comando usando a CLI do Azure ou o Azure PowerShell. Você também recupera uma chave de consulta usada para acesso de leitura ao índice e obtém a chave de administração interna usada para adicionar objetos.

Você deve ter a CLI do Azure ou o Azure PowerShell instalado em seu dispositivo. Se você não for um administrador local em seu dispositivo, escolha Azure PowerShell e use o Scope parâmetro para executar como o usuário atual.

Nota

Esta tarefa não requer as extensões de código do Visual Studio para a CLI do Azure e o Azure PowerShell. O Visual Studio Code reconhece as ferramentas de linha de comando sem as extensões.

  1. No Visual Studio Code, em Terminal, selecione New Terminal.

  2. Conecte-se ao Azure:

    az login
    
  3. Antes de criar um novo serviço de pesquisa, liste os serviços existentes para sua assinatura:

    az resource list --resource-type Microsoft.Search/searchServices --output table
    

    Se tiver um serviço que pretende utilizar, anote o nome e, em seguida, avance para a secção seguinte.

  4. Crie um novo serviço de pesquisa. Use o comando a seguir como modelo, substituindo valores válidos para o grupo de recursos, nome do serviço, camada, região, partições e réplicas. A instrução a seguir usa o grupo de recursos "cognitive-search-demo-rg" criado em uma etapa anterior e especifica a camada "livre". Se sua assinatura do Azure já tiver um serviço de pesquisa gratuito, especifique uma camada faturável, como "básica".

    az search service create --name my-cog-search-demo-svc --resource-group cognitive-search-demo-rg --sku free --partition-count 1 --replica-count 1
    
  5. Obtenha uma chave de consulta que conceda acesso de leitura a um serviço de pesquisa. Um serviço de pesquisa é provisionado com duas chaves de administrador e uma chave de consulta. Substitua nomes válidos para o grupo de recursos e o serviço de pesquisa. Copie a chave de consulta para o bloco de notas para que você possa colá-la no código do cliente em uma etapa posterior:

    az search query-key list --resource-group cognitive-search-demo-rg --service-name my-cog-search-demo-svc
    
  6. Obtenha uma chave de API de administração do serviço de pesquisa. Uma chave de API admin fornece acesso de gravação ao serviço de pesquisa. Copie uma das chaves de administração para o Bloco de Notas para que você possa usá-la na etapa de importação em massa que cria e carrega um índice:

    az search admin-key show --resource-group cognitive-search-demo-rg --service-name my-cog-search-demo-svc
    

O script usa o SDK do Azure para Azure AI Search:

  1. No Visual Studio Code, abra o Program.cs arquivo no subdiretório, search-website-functions-v4/bulk-insert, substitua as seguintes variáveis por seus próprios valores para autenticar com o SDK da Pesquisa do Azure:

    • SEU-NOME-PESQUISA-RECURSO-
    • SUA-CHAVE-DE-PESQUISA-ADMIN-KEY
    
    using Azure;
    using Azure.Search.Documents;
    using Azure.Search.Documents.Indexes;
    using Azure.Search.Documents.Indexes.Models;
    using AzureSearch.BulkInsert;
    using ServiceStack;
    
    const string BOOKS_URL = "https://raw.githubusercontent.com/Azure-Samples/azure-search-sample-data/main/good-books/books.csv";
    const string SEARCH_ENDPOINT = "https://YOUR-SEARCH-RESOURCE-NAME.search.windows.net";
    const string SEARCH_KEY = "YOUR-SEARCH-ADMIN-KEY";
    const string SEARCH_INDEX_NAME = "good-books";
    
    Uri searchEndpointUri = new(SEARCH_ENDPOINT);
    
    SearchClient client = new(
        searchEndpointUri,
        SEARCH_INDEX_NAME,
        new AzureKeyCredential(SEARCH_KEY));
    
    SearchIndexClient clientIndex = new(
        searchEndpointUri,
        new AzureKeyCredential(SEARCH_KEY));
    
    await CreateIndexAsync(clientIndex);
    await BulkInsertAsync(client);
    
    static async Task CreateIndexAsync(SearchIndexClient clientIndex)
    {
        Console.WriteLine("Creating (or updating) search index");
        SearchIndex index = new BookSearchIndex(SEARCH_INDEX_NAME);
        var result = await clientIndex.CreateOrUpdateIndexAsync(index);
    
        Console.WriteLine(result);
    }
    
    static async Task BulkInsertAsync(SearchClient client)
    {
        Console.WriteLine("Download data file");
        using HttpClient httpClient = new();
    
        var csv = await httpClient.GetStringAsync(BOOKS_URL);
    
        Console.WriteLine("Reading and parsing raw CSV data");
        var books =
            csv.ReplaceFirst("book_id", "id").FromCsv<List<BookModel>>();
    
        Console.WriteLine("Uploading bulk book data");
        _ = await client.UploadDocumentsAsync(books);
    
        Console.WriteLine("Finished bulk inserting book data");
    }
    
  2. Abra um terminal integrado no Visual Studio Code para o subdiretório do diretório do projeto e, em seguida, search-website-functions-v4/bulk-insertexecute o seguinte comando para instalar as dependências.

    dotnet restore
    
  1. Continue usando o terminal integrado no Visual Studio para o subdiretório do diretório do projeto, search-website-functions-v4/bulk-insert, para executar o seguinte comando bash para executar o Program.cs script:

    dotnet run
    
  2. À medida que o código é executado, o console exibe o progresso.

  3. Quando o carregamento estiver concluído, a última instrução impressa no console será "Concluído inserção em massa de dados do livro".

Rever o novo índice de pesquisa

Quando o carregamento for concluído, o índice de pesquisa estará pronto para ser usado. Reveja o seu novo índice no portal do Azure.

  1. No portal do Azure, localize o serviço de pesquisa que você criou na etapa anterior.

  2. À esquerda, selecione Índices e, em seguida, selecione o índice de bons livros.

    Captura de ecrã expansível do portal do Azure a mostrar o índice.

  3. Por padrão, o índice é aberto na guia Gerenciador de pesquisa . Selecione Pesquisar para retornar documentos do índice.

    Captura de ecrã expansível do portal do Azure a mostrar os resultados da pesquisa

Reversão de alterações de arquivos de importação em massa

Use o seguinte comando git no terminal integrado do Visual Studio Code no bulk-insert diretório para reverter as alterações. Eles não são necessários para continuar o tutorial e você não deve salvar ou enviar esses segredos para o seu repositório.

git checkout .

Copie o nome do recurso de Pesquisa

Anote o nome do recurso de pesquisa. Você precisará disso para conectar o aplicativo Azure Function ao seu recurso de pesquisa.

Atenção

Embora você possa ficar tentado a usar sua chave de administração de pesquisa na Função do Azure, isso não está seguindo o princípio de menor privilégio. A Função do Azure usará a chave de consulta para estar em conformidade com o privilégio mínimo.

Próximos passos

Implante seu aplicativo Web estático