Freigeben über


Schritt 2 – Erstellen und Laden des Suchindexes

Fahren Sie mit dem Erstellen Ihrer Website mit Suchunterstützung fort, indem Sie die folgenden Schritte ausführen:

  • Erstellen eines neuen Indexes
  • Laden der Daten

Das Programm nutzt Azure.Search.Documents im Azure SDK für .NET:

Stellen Sie zunächst sicher, dass Sie in Ihrem Suchdienst Platz für einen neuen Index ist. Der Grenzwert im Free-Tarif beträgt drei Indizes. Der Grenzwert für den Basic-Tarif ist 15.

  1. Öffnen Sie in Visual Studio Code die Datei Program.cs im Unterverzeichnis azure-search-static-web-app/bulk-insert, und ersetzen Sie die folgenden Variablen durch Ihre eigenen Werte, um sich mit dem Azure Search SDK zu authentifizieren:

    
    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. Öffnen Sie ein integriertes Terminal in Visual Studio Code für das Unterverzeichnis azure-search-static-web-app/bulk-insert des Projektverzeichnisses.

  3. Führen Sie den folgenden Befehl aus, um die Abhängigkeiten zu installieren:

    dotnet restore
    
  1. Führen Sie im selben Unterverzeichnis (azure-search-static-web-app/bulk-insert) das Programm aus:

    dotnet run
    
  2. Während der Codeausführung wird in der Konsole der Status angezeigt. Die folgende Ausgabe wird angezeigt.

     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
    

Überblick über den neuen Suchindex

Nach Abschluss des Uploads kann der Suchindex verwendet werden. Überprüfen Sie Ihren neuen Index im Azure-Portal.

  1. Suchen Sie im Azure-Portal nach Ihrem Suchdienst.

  2. Wählen Sie auf der linken Seite Suchverwaltung > Indizes und dann den Index „good-books“ aus.

    Erweiterbarer Screenshot: Azure-Portal mit dem Index

  3. Standardmäßig wird der Index auf der Registerkarte Such-Explorer geöffnet. Wählen Sie Suchen aus, um Dokumente aus dem Index zurückzugeben.

    Erweiterbarer Screenshot: Azure-Portal mit Suchergebnissen

Rollback von Massenimport-Dateiänderungen

Verwenden Sie den folgenden git-Befehl im integrierten Visual Studio Code-Terminal im Verzeichnis bulk-insert, um ein Rollback der Änderungen an der Datei Program.cs auszuführen. Sie werden nicht benötigt, um das Tutorial fortzusetzen, und Sie sollten Ihre API-Schlüssel oder Suchdienstnamen nicht speichern oder in Ihr Repository pushen.

git checkout .

Nächste Schritte

Bereitstellen Ihrer statischen Web-App