Бөлісу құралы:


Шаг 2. Создание и загрузка индекса поиска

Продолжайте создавать веб-сайт с поддержкой поиска, выполнив следующие действия.

  • Создание нового индекса
  • Загрузка данных

Программа использует Azure.Search.Documents в пакете SDK Azure для .NET:

Перед началом работы убедитесь, что у вас есть место в службе поиска для нового индекса. Ограничение уровня "Бесплатный" составляет три индекса. Ограничение уровня "Базовый" равно 15.

  1. В Visual Studio Code откройте Program.cs файл в подкаталоге, azure-search-static-web-app/bulk-insertзамените следующие переменные собственными значениями для проверки подлинности с помощью пакета SDK для поиска Azure.

    
    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. Откройте интегрированный терминал в Visual Studio Code для подкаталога azure-search-static-web-app/bulk-insertкаталога проекта.

  3. Выполните следующую команду, чтобы установить зависимости.

    dotnet restore
    
  1. Все еще в том же подкаталоге (azure-search-static-web-app/bulk-insert), запустите программу:

    dotnet run
    
  2. По мере выполнения кода в консоли будет отображатся ход выполнения. Вы должны увидеть следующие выходные данные.

     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
    

Просмотр нового индекса поиска

Индекс поиска можно использовать сразу после завершения отправки. Просмотрите новый индекс в портал Azure.

  1. В портал Azure найдите службу поиска.

  2. Слева выберите индексы управления > поиском, а затем выберите индекс хороших книг.

    Развернутый снимок экрана портал Azure с индексом.

  3. По умолчанию индекс открывается на вкладке обозревателя поиска. Выберите "Поиск ", чтобы вернуть документы из индекса.

    Расширяемый снимок экрана портал Azure с результатами поиска

Откат изменений файла с массовым импортом

Используйте следующую команду Git в интегрированном терминале Visual Studio Code в каталоге bulk-insert , чтобы откатить изменения в Program.cs файле. Они не нужны, чтобы продолжить учебник, и вы не должны сохранять или отправлять ключи API или имя службы поиска в репозиторий.

git checkout .

Следующие шаги

Развертывание статического веб-приложения