Dela via


Steg 2 – Skapa och läsa in sökindexet

Fortsätt att skapa din sökaktiverade webbplats genom att följa dessa steg:

  • Skapa ett nytt index
  • Läsa in data

Programmet använder Azure.Search.Documents i Azure SDK för .NET:

Innan du börjar måste du se till att du har plats i söktjänsten för ett nytt index. Gränsen för den kostnadsfria nivån är tre index. Nivån Basic är 15.

  1. Öppna filen i underkatalogen Program.cs i Visual Studio Code och azure-search-static-web-app/bulk-insertersätt följande variabler med dina egna värden för att autentisera med Azure Search SDK.

    • YOUR-SEARCH-SERVICE-NAME (inte den fullständiga URL:en)
    • YOUR-SEARCH-ADMIN-API-KEY (se Hitta API-nycklar)
    
    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. Öppna en integrerad terminal i Visual Studio Code för projektkatalogens underkatalog, azure-search-static-web-app/bulk-insert.

  3. Kör följande kommando för att installera beroendena.

    dotnet restore
    
  1. Kör fortfarande programmet i samma underkatalog (azure-search-static-web-app/bulk-insert):

    dotnet run
    
  2. När koden körs visar konsolen förlopp. Du bör se följande utdata.

     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
    

Granska det nya sökindexet

När uppladdningen är klar är sökindexet redo att användas. Granska ditt nya index i Azure Portal.

  1. Leta upp söktjänsten i Azure Portal.

  2. Till vänster väljer du Sökhanteringsindex >och sedan indexet good-books.

    Expanderbar skärmbild av Azure Portal som visar indexet.

  3. Som standard öppnas indexet på fliken Sökutforskaren . Välj Sök om du vill returnera dokument från indexet.

    Utökningsbar skärmbild av Azure Portal som visar sökresultat

Återställning av massimportfiländringar

Använd följande git-kommando i visual studiokodens integrerade terminal i bulk-insert katalogen för att återställa ändringarna i Program.cs filen. De behövs inte för att fortsätta självstudien och du bör inte spara eller push-överföra dina API-nycklar eller söktjänstnamn till lagringsplatsen.

git checkout .

Nästa steg

Distribuera din statiska webbapp