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.
Vorbereiten des Massenimportskripts für die Suche
Öffnen Sie in Visual Studio Code die Datei
Program.cs
im Unterverzeichnisazure-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:- YOUR-SEARCH-SERVICE-NAME (nicht die vollständige URL)
- YOUR-SEARCH-ADMIN-API-KEY (siehe Suchen vorhandener Schlüssel)
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"); }
Öffnen Sie ein integriertes Terminal in Visual Studio Code für das Unterverzeichnis
azure-search-static-web-app/bulk-insert
des Projektverzeichnisses.Führen Sie den folgenden Befehl aus, um die Abhängigkeiten zu installieren:
dotnet restore
Ausführen des Massenimportskripts für die Suche
Führen Sie im selben Unterverzeichnis (
azure-search-static-web-app/bulk-insert
) das Programm aus:dotnet run
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.
Suchen Sie im Azure-Portal nach Ihrem Suchdienst.
Wählen Sie auf der linken Seite Suchverwaltung > Indizes und dann den Index „good-books“ aus.
Standardmäßig wird der Index auf der Registerkarte Such-Explorer geöffnet. Wählen Sie Suchen aus, um Dokumente aus dem Index zurückzugeben.
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 .