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 katman sınırı üç dizindir. Temel katman sınırı 15'tir.

  1. Visual Studio Code'da dosyasını alt dizininde açın Program.cs ve azure-search-static-web-app/bulk-insertAzure 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

Karşıya yükleme tamamlandıktan sonra arama dizini kullanıma hazır olur. 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 içeri aktarma dosyası değişikliklerini geri alma

Değişiklikleri Program.cs dosyaya geri almak için dizindeki Visual Studio Code tümleşik terminalinde bulk-insert aşağıdaki git komutunu kullanın. Öğreticiye devam etmek için gerekli değildir ve API anahtarlarınızı veya arama hizmeti adınızı deponuza kaydetmemeniz veya göndermemeniz gerekir.

git checkout .

Sonraki adımlar

Statik Web Uygulamanızı dağıtma