Menelusuri hasil daftar Pencarian Azure AI per halaman (pratinjau)

Note

Pencarian Azure AI tersedia melalui portal Azure, REST API, dan Azure SDK. Ini juga mendukung Foundry IQ, lapisan pengetahuan terkelola yang mengubah konten perusahaan menjadi pangkalan pengetahuan yang dapat digunakan kembali dan sadar izin untuk agen di portal Microsoft Foundry.

Important

Fitur, kemampuan, atau properti yang ditandai (pratinjau) tidak tercakup dalam perjanjian tingkat layanan, tidak disarankan untuk beban kerja produksi, dan mungkin berubah atau dibatasi sebelum tersedia secara umum. Ketentuan pratinjau Pencarian Azure AI berlaku untuk semua fungsionalitas pratinjau, baik itu mandiri atau bagian dari fitur yang tersedia secara umum.

Mulai dengan 2026-08-01-preview API REST, gunakan paginasi kursor (pratinjau) untuk mencantumkan sumber daya layanan yang didukung halaman demi halaman. Layanan mengembalikan URL lanjutan yang tidak transparan ketika tersedia lebih banyak hasil.

Artikel ini menjelaskan kontrak kursor dan menunjukkan cara membuat halaman melalui indeks yang ada.

Prerequisites

  • Paket pratinjau terbaru Azure.Search.Documents: dotnet add package Azure.Search.Documents --prerelease

  • Untuk autentikasi tanpa kunci, Azure.Identity paket: dotnet add package Azure.Identity

    Note

    Pustaka klien harus mendukung 2026-08-01-preview versi REST API Layanan Pencarian. Versi sebelumnya tidak mengekspos parameter kursor yang diperlihatkan dalam artikel ini.

  • Paket pratinjau terbaru azure-search-documents: pip install --pre azure-search-documents

  • Untuk autentikasi tanpa kunci, azure-identity paket: pip install azure-identity

    Note

    Pustaka klien harus mendukung 2026-08-01-preview versi REST API Layanan Pencarian. Versi sebelumnya tidak mengekspos parameter kursor yang diperlihatkan dalam artikel ini.

Pilih operasi daftar

Kontrak 2026-08-01-preview kursor berlaku untuk operasi daftar berikut:

Operation Jalur sumber daya
Daftar Alias /aliases
Mencantumkan Sumber Data /datasources
Daftar Pengindeks /indexers
Daftar Indeks /indexes
Daftar Statistik Indeks /indexstats
Daftar Pangkalan Pengetahuan /knowledgebases
Mencantumkan Sumber Pengetahuan /knowledgesources
Mencantumkan File Sumber Pengetahuan /knowledgesources('{knowledge-source-name}')/files
Daftar Keahlian /skillsets
Daftar Peta Sinonim /synonymmaps

Meminta akses ke dan mengikuti halaman

Contoh berikut mencantumkan indeks yang namanya dimulai dengan hotels dan meminta hingga 50 indeks per halaman. Melakukan iterasi hasil AsyncPageable<SearchIndex> secara otomatis meminta setiap halaman berikutnya.

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);
}

Referensi:SearchIndexClient.GetIndexesAsync

Contoh berikut mencantumkan indeks yang namanya dimulai dengan hotels dan meminta hingga 50 indeks per halaman. Melakukan iterasi hasil ItemPaged secara otomatis meminta setiap halaman berikutnya.

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)

Referensi:SearchIndexClient.list_indexes

Kirim permintaan awal untuk mencantumkan indeks yang namanya dimulai dengan hotels. Permintaan mengembalikan hingga 50 nama indeks:

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

Referensi:Daftar Indeks

Ketika ada lebih dari 50 indeks yang cocok, respons mencakup @odata.nextLink, yang berisi URL kelanjutan lengkap dan token buram. Respons berikut disingkat:

{
  "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>"
}

Untuk meminta halaman berikutnya, kirim permintaan GET ke nilai lengkap @odata.nextLink persis seperti yang dikembalikan. Pertahankan header autentikasi yang sama:

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

Referensi:Daftar Indeks

Respons terminal berisi nama indeks akhir dan menghilangkan @odata.nextLink, menunjukkan bahwa tidak ada lagi halaman yang tersedia. Urutan hasil bukan bagian dari kontrak kursor:

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

Mengatur perilaku kursor

  • Deteksi halaman akhir: Lanjutkan halaman hanya saat respons berisi @odata.nextLink. Halaman terminal menghilangkan properti ini, dan respons tidak menyertakan @odata.count.

  • Pertahankan status pelanjutan: Gunakan @odata.nextLink secara lengkap tepat seperti yang dikembalikan. Jangan membuat, memodifikasi, mendekode, atau menggunakan ulang $skiptoken. Token hanya mendukung pagination maju.

  • Ubah parameter permintaan: Mulai permintaan awal baru untuk mengubah jalur sumber daya, versi API, awalan pencarian, properti yang dipilih, atau ukuran halaman. Menggabungkan $skiptoken dengan search atau pageSize mengembalikan HTTP 400.

  • Pertimbangkan perubahan pada koleksi: Paginasi maju hanya stabil selama koleksi tidak berubah. Menambahkan, memperbarui, atau menghapus sumber daya selama enumerasi dapat menghasilkan hasil duplikat atau dihilangkan.