Aracılığıyla paylaş


2. Adım - Arama dizinini oluşturma ve yükleme

Şu adımları izleyerek arama özellikli web sitenizi oluşturmaya devam edin:

  • Yeni dizin oluşturma
  • Verileri yükleme

Program, .NET için Azure SDK'sında Azure.Search.Documents kullanır:

Başlamadan önce arama hizmetinizde yeni bir dizin için yer olduğundan emin olun. Ücretsiz seviye sınırı üç dizindir. Temel katman sınırı 15'tir.

  1. Visual Studio Code'da, azure-search-static-web-app/bulk-insert alt dizinindeki Program.cs dosyasını açın ve Azure Search SDK'sı ile kimlik doğrulaması yapmak için aşağıdaki değişkenleri kendi değerlerinizle değiştirin.

    • ADINIZ-ARAMA-HİzMETİ-ADI (tam URL değil)
    • YOUR-SEARCH-ADMIN-API-KEY (bkz . API anahtarlarını bulma)
    
    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. Proje dizininin alt dizini azure-search-static-web-app/bulk-insertiçin Visual Studio Code'da tümleşik bir terminal açın.

  3. Bağımlılıkları yüklemek için aşağıdaki komutu çalıştırın.

    dotnet restore
    
  1. Yine aynı alt dizinde ()azure-search-static-web-app/bulk-insert programı çalıştırın:

    dotnet run
    
  2. Kod çalışırken konsol ilerleme durumunu görüntüler. Aşağıdaki çıkışı görmelisiniz.

     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
    

Yeni arama dizinini gözden geçirme

Yükleme tamamlandıktan sonra arama dizini kullanıma hazır hale gelir. Azure portalında yeni dizininizi gözden geçirin.

  1. Azure portalında arama hizmetinizi bulun.

  2. Sol tarafta Arama Yönetimi > Dizinleri'ni ve ardından good-books dizinini seçin.

    Dizini gösteren Azure portalının genişletilebilir ekran görüntüsü.

  3. Varsayılan olarak, dizin Arama Gezgini sekmesinde açılır. Dizinden belge döndürmek için Ara'yı seçin.

    Arama sonuçlarını gösteren Azure portalının genişletilebilir ekran görüntüsü

Toplu veri aktarım dosyası değişikliklerini geri yükleme

Değişiklikleri Program.cs dosyasına geri almak için bulk-insert dizinindeki Visual Studio Code tümleşik terminalinde aşağıdaki git komutunu kullanın. Öğreticiye devam etmek için API anahtarlarına veya arama hizmeti adına ihtiyacınız yoktur ve bunları deponuza kaydetmemeli veya göndermemelisiniz.

git checkout .

Sonraki adımlar

Statik Web Uygulamanızı dağıtma