Krok 2. Tworzenie i ładowanie indeksu wyszukiwania
Kontynuuj tworzenie witryny internetowej obsługującej wyszukiwanie, wykonując następujące kroki:
- Tworzenie nowego indeksu
- Ładowanie danych
Program używa elementu Azure.Search.Documents w zestawie Azure SDK dla platformy .NET:
Przed rozpoczęciem upewnij się, że masz miejsce w usłudze wyszukiwania dla nowego indeksu. Limit warstwy Bezpłatna to trzy indeksy. Limit warstwy Podstawowa wynosi 15.
Przygotowywanie skryptu importu zbiorczego do wyszukiwania
W programie Visual Studio Code otwórz
Program.cs
plik w podkatalogu ,azure-search-static-web-app/bulk-insert
zastąp następujące zmienne własnymi wartościami, aby uwierzytelnić się przy użyciu zestawu SDK usługi Azure Search.- TWOJA-SEARCH-SERVICE-NAME (nie pełny adres URL)
- YOUR-SEARCH-ADMIN-API-KEY (zobacz Znajdowanie kluczy interfejsu 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"); }
Otwórz zintegrowany terminal w programie Visual Studio Code dla podkatalogu katalogu projektu.
azure-search-static-web-app/bulk-insert
Uruchom następujące polecenie, aby zainstalować zależności.
dotnet restore
Uruchamianie skryptu importu zbiorczego dla wyszukiwania
Nadal w tym samym podkatalogu (
azure-search-static-web-app/bulk-insert
), uruchom program:dotnet run
W miarę uruchamiania kodu w konsoli jest wyświetlany postęp. Powinny zostać wyświetlone następujące dane wyjściowe.
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
Przeglądanie nowego indeksu wyszukiwania
Po zakończeniu przekazywania indeks wyszukiwania jest gotowy do użycia. Przejrzyj nowy indeks w witrynie Azure Portal.
W witrynie Azure Portal znajdź usługę wyszukiwania.
Po lewej stronie wybierz pozycję Indeksy zarządzania wyszukiwaniem>, a następnie wybierz indeks good-books.
Domyślnie indeks zostanie otwarty na karcie Eksplorator wyszukiwania. Wybierz pozycję Wyszukaj , aby zwrócić dokumenty z indeksu.
Wycofywanie zmian pliku importu zbiorczego
Użyj następującego polecenia git w zintegrowanym terminalu programu Visual Studio Code w bulk-insert
katalogu, aby wycofać zmiany w Program.cs
pliku. Nie są one potrzebne do kontynuowania samouczka i nie należy zapisywać ani wypychać kluczy interfejsu API ani nazwy usługi wyszukiwania do repozytorium.
git checkout .