2

Azure 搜索一次最多返回 1,000 个结果。对于客户端上的分页,我想要匹配的总数,以便能够在底部显示正确数量的分页按钮,并能够告诉用户有多少结果。但是,如果有超过一千个,我如何获得实际计数?我所知道的是至少有1,000 场比赛。

我需要能够从 SDK 中执行此操作。

4

2 回答 2

5

如果您想获取索引中的文档总数,您可以做的一件事是在搜索参数中设置IncludeTotalResultCount为。在执行查询时执行此操作后,您将在搜索结果的属性中true看到索引中的文档总数。Count

这是一个示例代码:

        var credentials = new SearchCredentials("account-key (query or admin key)");
        var indexClient = new SearchIndexClient("account-name", "index-name", credentials);
        var searchParameters = new SearchParameters()
        {
            QueryType = QueryType.Full,
            IncludeTotalResultCount = true
        };
        var searchResults = await indexClient.Documents.SearchAsync("*", searchParameters);
        Console.WriteLine("Total documents in index (approx) = " + searchResults.Count.GetValueOrDefault());//Prints the total number of documents in the index

请注意:

  • 这个计数将是近似值。
  • 获取计数是一项昂贵的操作,因此您应该只在实现分页时对第一个请求执行此操作。
于 2017-11-03T05:59:04.393 回答
0

对于使用 POST API 的 REST 客户端,只需包含"count": "true"到有效负载中。你得到计数@odata.count

参考:https ://docs.microsoft.com/en-us/rest/api/searchservice/search-documents

于 2020-02-18T22:32:43.640 回答