Parcourir les résultats de la liste dans Recherche Azure AI (préversion)

Note

Recherche Azure AI est disponible via le portail Azure, les API REST et les SDK Azure. Il sous-tend également Foundry IQ, la couche de connaissances managée qui transforme le contenu d’entreprise en bases de connaissances réutilisables et prenant en charge les autorisations pour les agents dans le portail Microsoft Foundry.

Important

Les fonctionnalités, capacités ou propriétés marquées (préversion) ne sont pas couvertes par un accord de niveau de service, ne sont pas recommandées pour les workloads de production et peuvent être modifiées ou faire l’objet de restrictions avant leur mise à disposition générale. Les Recherche Azure AI termes de la préversion s'appliquent à toutes les fonctionnalités d'aperçu, qu'il s'agisse d'une fonctionnalité autonome ou d'une partie d'une fonctionnalité généralement disponible.

À compter de l’API REST, utilisez la 2026-08-01-preview pagination du curseur (préversion) pour énumérer les ressources de service prises en charge une page à la fois. Le service retourne une URL de continuation opaque lorsque d’autres résultats sont disponibles.

Cet article explique le contrat de curseur et montre comment parcourir des index existants.

Prerequisites

  • Le dernier paquet Azure.Search.Documents (préversion) : dotnet add package Azure.Search.Documents --prerelease

  • Pour l’authentification sans clé, le Azure.Identity package : dotnet add package Azure.Identity

    Note

    La bibliothèque cliente doit prendre en charge la 2026-08-01-preview version de l’API REST du service de recherche. Les versions antérieures n’exposent pas les paramètres de curseur affichés dans cet article.

  • Le dernier paquet azure-search-documents (préversion) : pip install --pre azure-search-documents

  • Pour l’authentification sans clé, le azure-identity package : pip install azure-identity

    Note

    La bibliothèque cliente doit prendre en charge la 2026-08-01-preview version de l’API REST du service de recherche. Les versions antérieures n’exposent pas les paramètres de curseur affichés dans cet article.

Choisir une opération de liste

Le 2026-08-01-preview contrat de curseur s’applique aux opérations de liste suivantes :

Operation Chemin d’accès aux ressources
Alias de la liste /aliases
Répertorier les sources de données /datasources
Indexeurs de liste /indexers
Index de liste /indexes
Lister les statistiques de l’index /indexstats
Répertorier les bases de connaissances /knowledgebases
Répertorier les sources de connaissances /knowledgesources
Répertorier les fichiers sources de connaissances /knowledgesources('{knowledge-source-name}')/files
Répertorier les ensembles de compétences /skillsets
Liste des mappages de synonymes /synonymmaps

Demander l’accès à des pages et les suivre

L’exemple suivant liste les index dont les noms commencent par hotels et demande jusqu’à 50 index par page. Itérer le résultat AsyncPageable<SearchIndex> demande automatiquement chaque page suivante.

using System;
using Azure;
using Azure.Identity;
using Azure.Search.Documents;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.Models;

string endpoint = Environment.GetEnvironmentVariable(
    "AZURE_SEARCH_ENDPOINT")!;

var options = new SearchClientOptions(
    SearchClientOptions.ServiceVersion.V2026_08_01_Preview);
var client = new SearchIndexClient(
    new Uri(endpoint),
    new AzureCliCredential(),
    options);

AsyncPageable<SearchIndex> indexes = client.GetIndexesAsync(
    search: "hotels",
    pageSize: 50,
    searchType: ListingSearchType.Prefix);

await foreach (SearchIndex index in indexes)
{
    Console.WriteLine(index.Name);
}

Reference :SearchIndexClient.GetIndexesAsync

L’exemple suivant liste les index dont les noms commencent par hotels et demande jusqu’à 50 index par page. Itérer le résultat ItemPaged demande automatiquement chaque page suivante.

import os

from azure.identity import AzureCliCredential
from azure.search.documents.indexes import SearchIndexClient

endpoint = os.getenv("AZURE_SEARCH_ENDPOINT")

with SearchIndexClient(
    endpoint,
    AzureCliCredential(),
    api_version="2026-08-01-preview",
) as client:
    indexes = client.list_indexes(
        select=["name"],
        search="hotels",
        page_size=50,
        search_type="prefix",
    )
    for index in indexes:
        print(index.name)

Référence :SearchIndexClient.list_indexes

Envoyez une requête initiale aux index de liste dont les noms commencent par hotels. La requête retourne jusqu’à 50 noms d’index :

GET https://<search-service-name>.search.windows.net/indexes?api-version=2026-08-01-preview&search=hotels&searchType=prefix&pageSize=50&$select=name
Authorization: Bearer <access-token>
Accept: application/json

Reference :List Indexes

Lorsque plus de 50 index correspondants existent, la réponse inclut @odata.nextLink, qui contient l’URL de continuation complète et un jeton opaque. La réponse suivante est abrégée :

{
  "value": [
    {
      "name": "<index-name>"
    }
  ],
  "@odata.nextLink": "https://<search-service-name>.search.windows.net/indexes?api-version=2026-08-01-preview&searchType=prefix&%24select=name&%24skiptoken=<opaque-token>"
}

Pour demander la page suivante, envoyez une requête GET en utilisant exactement la valeur complète @odata.nextLink telle qu’elle a été renvoyée. Conservez le même en-tête d’authentification :

GET <[email protected]>
Authorization: Bearer <access-token>
Accept: application/json

Reference :List Indexes

La réponse du terminal contient les noms d’index définitifs et omet @odata.nextLink, ce qui indique qu’aucune autre page n’est disponible. L’ordre des résultats ne fait pas partie du contrat du curseur :

{
  "value": [
    {
      "name": "<next-index-name>"
    }
  ]
}

Gérer le comportement du curseur

  • Détecter la page finale : Continuez la pagination uniquement pendant que la réponse contient @odata.nextLink. La page terminal omet cette propriété et les réponses n’incluent @odata.countpas .

  • Préservez l’état de reprise : Utilisez @odata.nextLink dans son intégralité exactement tel qu’il a été renvoyé. Ne construisez pas, modifiez, décodez ou réutilisez son $skiptoken. Le jeton prend uniquement en charge la pagination vers l’avant.

  • Modifier les paramètres de la demande : Démarrez une nouvelle requête initiale pour modifier le chemin de ressource, la version de l’API, le préfixe de recherche, les propriétés sélectionnées ou la taille de page. $skiptoken Combinaison avec search ou pageSize retourne HTTP 400.

  • Compte des modifications apportées à la collection : La pagination vers l’avant n’est stable que si la collection reste inchangée. L’ajout, la mise à jour ou la suppression de ressources pendant l’énumération peut produire des résultats dupliqués ou omis.