Condividi tramite


Passaggio 2: Creare e caricare l'indice di ricerca

Continuare a creare il sito web abilitato per le ricerche seguendo questa procedura:

  • Creare un nuovo indice
  • Caricare i dati

Il programma usa Azure.Search.Documents in Azure SDK per .NET:

Prima di iniziare, assicurarsi di disporre di spazio per un nuovo indice nel servizio di ricerca. Il limite del livello gratuito è tre indici. Il limite del livello Basic è 15.

  1. In Visual Studio Code aprire il file Program.cs nella sottodirectory, azure-search-static-web-app/bulk-insert, sostituire le variabili seguenti con i propri valori per l'autenticazione con l'SDK di Ricerca di Azure.

    
    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. Aprire un terminale integrato in Visual Studio Code per la sottodirectory della directory del progetto, azure-search-static-web-app/bulk-insert.

  3. Eseguire il comando seguente per installare le dipendenze.

    dotnet restore
    
  1. Sempre nella stessa sottodirectory (azure-search-static-web-app/bulk-insert), eseguire il programma:

    dotnet run
    
  2. Mentre viene seguito il codice, la console mostra l'avanzamento. Viene visualizzato l'output seguente.

     Creating (or updating) search index
     Status: 201, Value: Azure.Search.Documents.Indexes.Models.SearchIndex
     Download data file
     Reading and parsing raw CSV data
     Uploading bulk book data
     Finished bulk inserting book data
    

Rivedere il nuovo indice di ricerca

Una volta completato il caricamento, l'indice di ricerca potrà essere utilizzato. Rivedere il nuovo indice nel portale di Azure.

  1. Nel portale di Azure, trovare il servizio di ricerca.

  2. A sinistra selezionare Cerca indici di gestione >, quindi selezionare l'indice dei libri validi.

    Screenshot espansibile del portale di Azure che mostra l'indice.

  3. Per impostazione predefinita, l'indice si apre nella scheda Ricerca Explorer. Selezionare Cerca per restituire documenti dall'indice.

    Screenshot espansibile del portale di Azure che mostra i risultati della ricerca

Ripristino dello stato precedente delle modifiche al file di importazione in blocco

Usare il comando Git seguente nel terminale integrato di Visual Studio Code alla directory bulk-insert per eseguire il rollback delle modifiche per il file Program.cs. Non sono necessari per continuare l'esercitazione e non è consigliabile salvare o eseguire il push delle chiavi API o del nome del servizio di ricerca nel repository.

git checkout .

Passaggi successivi

Distribuire l'app Web statica