Search code examples
c#azureazure-search-.net-sdk

Where is ContinuationToken in Azure.Search.Documents v11


In Microsoft.Azure.Search.Data v10 when calling ISearchIndexClient.Documents.SearchAsync
I got a result with a ContinuationToken property.

In Azure.Search.Documents v11 I can't find it when calling SearchClient.SearchAsync
which - as far as I have found out - is the equal call.


Solution

  • I don't have a good way to explain it :) but please take a look at the code below. The code below fetches all documents from an index using continuation token:

    using System;
    using System.Threading.Tasks;
    using Azure;
    using Azure.Search.Documents;
    using Azure.Search.Documents.Models;
    
    namespace SO71052143
    {
        class Program
        {
            private const string accountName = "account-name";
            private const string accountKey = "admin-key";
            private const string indexName = "index-name";
    
            static async Task Main(string[] args)
            {
                SearchClient client = new SearchClient(new Uri($"https://{accountName}.search.windows.net"), indexName,
                    new AzureKeyCredential(accountKey));
                var results = (await client.SearchAsync<SearchDocument>("*"));
                var searchResults = results.Value.GetResultsAsync();
                string continuationToken = null;
                do
                {
                    await foreach (var item in searchResults.AsPages(continuationToken))
                    {
                        continuationToken = item.ContinuationToken;
                        var documents = item.Values;
                    }
                } while (continuationToken != null);
            }
        }
    }