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.
Preparare lo script di importazione in blocco per Ricerca
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.- YOUR-SEARCH-SERVICE-NAME (non l'URL completo)
- YOUR-SEARCH-ADMIN-API-KEY (vedere Trovare le chiavi API)
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"); }
Aprire un terminale integrato in Visual Studio Code per la sottodirectory della directory del progetto,
azure-search-static-web-app/bulk-insert
.Eseguire il comando seguente per installare le dipendenze.
dotnet restore
Eseguire lo script di importazione in blocco per Ricerca
Sempre nella stessa sottodirectory (
azure-search-static-web-app/bulk-insert
), eseguire il programma:dotnet run
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.
Nel portale di Azure, trovare il servizio di ricerca.
A sinistra selezionare Cerca indici di gestione >, quindi selezionare l'indice dei libri validi.
Per impostazione predefinita, l'indice si apre nella scheda Ricerca Explorer. Selezionare Cerca per restituire documenti dall'indice.
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 .