Share via


Étape 2 : Créer et charger un index de recherche avec .NET

Effectuez les étapes suivantes pour continuer à créer votre site web prenant en charge les recherches :

  • Créer une ressource de recherche
  • Créer un index
  • Importer des données avec .NET à l’aide de l’exemple de script et du SDK Azure Azure.Search.Documents.

Créer une ressource Recherche Azure AI

Créez une ressource de recherche à partir de la ligne de commande à l’aide de l’interface Azure CLI ou d’Azure PowerShell. Vous récupérez aussi une clé de requête utilisée pour l’accès en lecture à l’index et obtenir la clé d’administration prédéfinie et utilisée pour ajouter des objets.

Azure CLI ou Azure PowerShell doit être installé sur votre appareil. Si vous n’êtes pas un administrateur local sur votre appareil, choisissez Azure PowerShell et utilisez le paramètre Scope pour exécuter en tant qu’utilisateur actuel.

Remarque

Cette tâche ne nécessite pas les extensions Visual Studio Code pour l’interface Azure CLI et Azure PowerShell. Visual Studio Code reconnaît les outils en ligne de commande sans les extensions.

  1. Dans Visual Studio Code, sous Terminal, sélectionnez Nouveau terminal.

  2. Connectez-vous à Azure :

    az login
    
  3. Avant de créer un service de recherche, répertoriez les services existants pour votre abonnement :

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

    Si vous avez un service que vous souhaitez utiliser, notez son nom, puis passez à la section suivante.

  4. Créez un service de recherche. Utilisez la commande suivante comme modèle, en remplaçant les valeurs valides pour le groupe de ressources, le nom du service, le niveau, la région, les partitions et les réplicas. L’instruction suivante utilise le groupe de ressources « cognitive-search-demo-rg » créé à l’étape précédente et spécifie le niveau « gratuit ». Si votre abonnement Azure dispose déjà d’un service de recherche gratuite, spécifiez plutôt un niveau facturable tel que « de base ».

    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. Obtenir une clé de requête qui octroie l’accès en lecture à un service de recherche. Un service de recherche est approvisionné avec deux clés d’administration et une clé de requête. Remplacez des noms valides pour le groupe de ressources et le service de recherche. Copiez la clé de requête dans le Bloc-notes pour pouvoir la coller dans le code client lors d’une étape ultérieure :

    az search query-key list --resource-group cognitive-search-demo-rg --service-name my-cog-search-demo-svc
    
  6. Obtenir une clé API d’administration du service de recherche. Une clé API d’administration fournit un accès en écriture au service de recherche. Copiez l’une des clés d’administration dans le Bloc-notes pour pouvoir l’utiliser lors de l’étape d’importation en bloc qui crée et charge un index :

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

Le script utilise le Kit de développement logiciel (SDK) Azure pour la Recherche Azure AI :

  1. Dans Visual Studio Code, ouvrez le fichier Program.cs dans le sous-répertoire search-website-functions-v4/bulk-insert et remplacez les variables suivantes par vos propres valeurs pour vous authentifier auprès du SDK Azure Search :

    • VOTRE-NOM-DE-RESSOURCE-DE-RECHERCHE
    • VOTRE CLÉ-ADMINISTRATION-DE-RECHERCHE
    
    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. Ouvrez un terminal intégré dans Visual Studio Code pour le sous-répertoire du répertoire du projet, search-website-functions-v4/bulk-insert, puis exécutez la commande suivante pour installer les dépendances.

    dotnet restore
    
  1. Continuez à utiliser le terminal intégré dans Visual Studio pour le sous-répertoire du répertoire du projet, search-website-functions-v4/bulk-insert, pour exécuter la commande bash suivante afin d’exécuter le script Program.cs :

    dotnet run
    
  2. À mesure que le code s’exécute, la console affiche la progression.

  3. Une fois le chargement terminé, la dernière instruction imprimée dans la console stipule la « fin de l’insertion en bloc des données des livres ».

Examiner le nouvel index de recherche

Une fois le chargement effectué, l’index de recherche est prêt à être utilisé. Passez en revue votre nouvel index dans le portail Azure.

  1. Dans le portail Azure, recherchez le service de recherche que vous avez créé à l’étape précédente.

  2. Sur la gauche, sélectionnez Index, puis l’index good-books.

    Capture d’écran extensible du portail Azure montrant l’index.

  3. Par défaut, l’index s’ouvre sous l’onglet Explorateur de recherche. Sélectionnez Rechercher pour renvoyer des documents à partir de l’index.

    Capture d’écran extensible du portail Azure montrant des résultats de recherche

Annuler les modifications apportées au fichier d'importation en bloc

Dans le terminal intégré Visual Studio Code, appliquez la commande Git suivante au répertoire bulk-insert pour restaurer les modifications. Celles-ci ne sont pas nécessaires pour poursuivre le tutoriel, et vous n’avez pas besoin d’enregistrer ou de transmettre ces secrets à votre dépôt.

git checkout .

Copiez le nom de votre ressource de recherche.

Notez le nom de votre ressource de recherche. Vous en aurez besoin pour connecter l’application Azure Function à votre ressource de recherche.

Attention

Vous pouvez être tenté d’utiliser votre clé d’administration de recherche dans Azure Function, qui ne suit pas le principe du privilège minimum. Azure Function utilise la clé de requête pour se conformer au privilège minimum.

Étapes suivantes

Déployer votre application web statique