Delen via


Stap 2: Zoekindex maken en laden met .NET

Ga door met het bouwen van uw website met zoekmogelijkheden door de volgende stappen uit te voeren:

  • Een zoekresource maken
  • Een nieuwe index maken
  • Importeer gegevens met .NET met behulp van het voorbeeldscript en Azure SDK Azure.Search.Documents.

Een Azure AI Search-resource maken

Maak een nieuwe zoekresource vanaf de opdrachtregel met behulp van de Azure CLI of Azure PowerShell. U haalt ook een querysleutel op die wordt gebruikt voor leestoegang tot de index en haalt de ingebouwde beheersleutel op die wordt gebruikt voor het toevoegen van objecten.

U moet Azure CLI of Azure PowerShell op uw apparaat hebben geïnstalleerd. Als u geen lokale beheerder op uw apparaat bent, kiest u Azure PowerShell en gebruikt u de Scope parameter om als de huidige gebruiker uit te voeren.

Notitie

Voor deze taak zijn de Visual Studio Code-extensies voor Azure CLI en Azure PowerShell niet vereist. Visual Studio Code herkent de opdrachtregelprogramma's zonder de extensies.

  1. Selecteer in Visual Studio Code onder Terminal de optie Nieuwe terminal.

  2. Verbinding maken naar Azure:

    az login
    
  3. Voordat u een nieuwe zoekservice maakt, vermeldt u de bestaande services voor uw abonnement:

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

    Als u een service hebt die u wilt gebruiken, noteert u de naam en gaat u verder naar de volgende sectie.

  4. Maak een nieuwe zoekservice. Gebruik de volgende opdracht als sjabloon, waarbij u geldige waarden vervangt door de resourcegroep, servicenaam, laag, regio, partities en replica's. De volgende instructie maakt gebruik van de resourcegroep cognitive-search-demo-rg die in een vorige stap is gemaakt en geeft de 'gratis' laag op. Als uw Azure-abonnement al een gratis zoekservice heeft, geeft u in plaats daarvan een factureerbare laag op, zoals Basic.

    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. Haal een querysleutel op die leestoegang verleent tot een zoekservice. Een zoekservice wordt ingericht met twee beheerderssleutels en één querysleutel. Vervang geldige namen voor de resourcegroep en zoekservice. Kopieer de querysleutel naar Kladblok, zodat u deze in een latere stap in de clientcode kunt plakken:

    az search query-key list --resource-group cognitive-search-demo-rg --service-name my-cog-search-demo-svc
    
  6. Haal een API-sleutel voor de zoekservicebeheerder op. Een beheer-API-sleutel biedt schrijftoegang tot de zoekservice. Kopieer een van de beheerderssleutels naar Kladblok zodat u deze kunt gebruiken in de stap voor bulkimport waarmee een index wordt gemaakt en geladen:

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

Het script maakt gebruik van de Azure SDK voor Azure AI Search:

  1. Open in Visual Studio Code het Program.cs bestand in de submap, search-website-functions-v4/bulk-insertvervang de volgende variabelen door uw eigen waarden om te verifiëren met de Azure Search SDK:

    • NAAM VAN UW ZOEK-RESOURCE
    • UW ZOEK-ADMIN-SLEUTEL
    
    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. Open een geïntegreerde terminal in Visual Studio Code voor de submap van de projectmap en search-website-functions-v4/bulk-insertvoer vervolgens de volgende opdracht uit om de afhankelijkheden te installeren.

    dotnet restore
    
  1. Ga door met het gebruik van de geïntegreerde terminal in Visual Studio voor de submap search-website-functions-v4/bulk-insertvan de projectmap, om de volgende bash-opdracht uit te voeren om het Program.cs script uit te voeren:

    dotnet run
    
  2. Terwijl de code wordt uitgevoerd, wordt de voortgang van de console weergegeven.

  3. Wanneer het uploaden is voltooid, wordt de laatste instructie afgedrukt naar de console: 'Voltooid bulksgewijs invoegen van boekgegevens'.

De nieuwe zoekindex controleren

Zodra het uploaden is voltooid, is de zoekindex klaar voor gebruik. Controleer uw nieuwe index in Azure Portal.

  1. Zoek in Azure Portal de zoekservice die u in de vorige stap hebt gemaakt.

  2. Selecteer aan de linkerkant Indexen en selecteer vervolgens de index good-books.

    Uitvouwbare schermopname van Azure Portal met de index.

  3. De index wordt standaard geopend op het tabblad Search Explorer . Selecteer Zoeken om documenten uit de index te retourneren.

    Uitvouwbare schermopname van Azure Portal met zoekresultaten

Wijzigingen in bulksgewijs importeren van bestanden terugdraaien

Gebruik de volgende Git-opdracht in de geïntegreerde Terminal van Visual Studio Code in de bulk-insert map om de wijzigingen terug te draaien. Ze zijn niet nodig om door te gaan met de zelfstudie en u moet deze geheimen niet opslaan of naar uw opslagplaats pushen.

git checkout .

De naam van uw zoekresource kopiëren

Noteer de naam van uw zoekresource. U hebt deze nodig om de Azure Function-app te verbinden met uw zoekresource.

Let op

Hoewel u misschien geneigd bent om uw zoekbeheerderssleutel in de Azure-functie te gebruiken, volgt dat niet het principe van minimale bevoegdheden. De Azure-functie gebruikt de querysleutel om te voldoen aan minimale bevoegdheden.

Volgende stappen

Uw statische web-app implementeren