Krok 2. Tworzenie i ładowanie indeksu wyszukiwania za pomocą platformy .NET

Kontynuuj tworzenie witryny internetowej obsługującej wyszukiwanie, wykonując następujące kroki:

  • Tworzenie zasobu wyszukiwania
  • Tworzenie nowego indeksu
  • Importowanie danych za pomocą platformy .NET przy użyciu przykładowego skryptu i zestawu Azure SDK Azure.Search.Documents.

Tworzenie zasobu usługi Azure AI Search

Utwórz nowy zasób wyszukiwania z poziomu wiersza polecenia przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell. Pobierasz również klucz zapytania używany do odczytu do indeksu i uzyskujesz wbudowany klucz administracyjny używany do dodawania obiektów.

Na urządzeniu musi być zainstalowany interfejs wiersza polecenia platformy Azure lub program Azure PowerShell . Jeśli nie jesteś administratorem lokalnym na urządzeniu, wybierz program Azure PowerShell i użyj parametru Scope , aby uruchomić go jako bieżący użytkownik.

Uwaga

To zadanie nie wymaga rozszerzeń programu Visual Studio Code dla interfejsu wiersza polecenia platformy Azure i programu Azure PowerShell. Program Visual Studio Code rozpoznaje narzędzia wiersza polecenia bez rozszerzeń.

  1. W programie Visual Studio Code w obszarze Terminal wybierz pozycję Nowy terminal.

  2. Połączenie na platformę Azure:

    az login
    
  3. Przed utworzeniem nowej usługi wyszukiwania wyświetl listę istniejących usług dla subskrypcji:

    az resource list --resource-type Microsoft.Search/searchServices --output table
    

    Jeśli masz usługę, której chcesz użyć, zanotuj nazwę, a następnie przejdź do następnej sekcji.

  4. Utwórz nową usługę wyszukiwania. Użyj następującego polecenia jako szablonu, podstawiając prawidłowe wartości dla grupy zasobów, nazwy usługi, warstwy, regionu, partycji i replik. Poniższa instrukcja używa grupy zasobów "cognitive-search-demo-rg" utworzonej w poprzednim kroku i określa warstwę "bezpłatna". Jeśli Twoja subskrypcja platformy Azure ma już bezpłatną usługę wyszukiwania, określ warstwę rozliczaną, taką jak "podstawowa".

    az search service create --name my-cog-search-demo-svc --resource-group cognitive-search-demo-rg --sku free --partition-count 1 --replica-count 1
    
  5. Pobierz klucz zapytania, który udziela dostępu do odczytu do usługi wyszukiwania. Usługa wyszukiwania jest aprowizowana przy użyciu dwóch kluczy administracyjnych i jednego klucza zapytania. Zastąp prawidłowe nazwy grupy zasobów i usługi wyszukiwania. Skopiuj klucz zapytania do Notatnik, aby można było wkleić go do kodu klienta w późniejszym kroku:

    az search query-key list --resource-group cognitive-search-demo-rg --service-name my-cog-search-demo-svc
    
  6. Pobierz klucz interfejsu API administratora usługi wyszukiwania. Klucz interfejsu API administratora zapewnia dostęp do zapisu w usłudze wyszukiwania. Skopiuj jeden z kluczy administratora, aby Notatnik, aby można było go użyć w kroku importu zbiorczego, który tworzy i ładuje indeks:

    az search admin-key show --resource-group cognitive-search-demo-rg --service-name my-cog-search-demo-svc
    

Skrypt używa zestawu Azure SDK dla usługi Azure AI Search:

  1. W programie Visual Studio Code otwórz Program.cs plik w podkatalogu , search-website-functions-v4/bulk-insertzastąp następujące zmienne własnymi wartościami, aby uwierzytelnić się przy użyciu zestawu SDK usługi Azure Search:

    • NAZWA ZASOBU WYSZUKIWANIA
    • TWÓJ-SEARCH-ADMIN-KEY
    
    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. Otwórz zintegrowany terminal w programie Visual Studio Code dla podkatalogu katalogu projektu, a następnie uruchom następujące polecenie, search-website-functions-v4/bulk-insertaby zainstalować zależności.

    dotnet restore
    
  1. Kontynuuj korzystanie ze zintegrowanego terminalu w programie Visual Studio dla podkatalogu katalogu projektu , search-website-functions-v4/bulk-insertaby uruchomić następujące polecenie powłoki bash w celu uruchomienia skryptu Program.cs :

    dotnet run
    
  2. W miarę uruchamiania kodu w konsoli jest wyświetlany postęp.

  3. Po zakończeniu przekazywania ostatnia instrukcja wydrukowana w konsoli to "Zakończono zbiorcze wstawianie danych książki".

Przejrzyj nowy indeks wyszukiwania

Po zakończeniu przekazywania indeks wyszukiwania jest gotowy do użycia. Przejrzyj nowy indeks w witrynie Azure Portal.

  1. W witrynie Azure Portal znajdź usługę wyszukiwania utworzoną w poprzednim kroku.

  2. Po lewej stronie wybierz pozycję Indeksy, a następnie wybierz indeks good-books.

    Rozwijany zrzut ekranu witryny Azure Portal przedstawiający indeks.

  3. Domyślnie indeks zostanie otwarty na karcie Eksplorator wyszukiwania. Wybierz pozycję Wyszukaj , aby zwrócić dokumenty z indeksu.

    Rozwijany zrzut ekranu witryny Azure Portal przedstawiający wyniki wyszukiwania

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. Nie są one potrzebne do kontynuowania samouczka i nie należy zapisywać ani wypychać tych wpisów tajnych do repozytorium.

git checkout .

Kopiowanie nazwy zasobu wyszukiwania

Zanotuj nazwę zasobu wyszukiwania. Będzie to konieczne, aby połączyć aplikację funkcji platformy Azure z zasobem wyszukiwania.

Uwaga

Chociaż możesz być kuszony, aby użyć klucza administratora wyszukiwania w funkcji platformy Azure, to nie jest zgodna z zasadą najniższych uprawnień. Funkcja platformy Azure użyje klucza zapytania w celu zachowania zgodności z najniższymi uprawnieniami.

Następne kroki

Wdrażanie statycznej aplikacji internetowej