如何动态设置Azure搜索返回的文档大小?

时间:2019-12-11 13:26:32

标签: azure-cognitive-search azure-search-.net-sdk

我知道默认情况下Azure搜索将最多返回50行,它可以在一个请求中返回1000。然后,我需要使用continueToken来获取其余的信息。

但是,当我使用SearchServiceClient和SearchParameters通过SDK进行查询时,似乎无法传递参数来说明我希望在一个请求中返回多少行。我错过了什么?我有简单的代码,只是返回所有内容。

(我想要的是,在某些情况下,每个请求最多返回50行,而在其他情况下,每个请求返回1000行并循环以获取其余内容)。

var _searchClient = new SearchServiceClient(searchServiceName, new SearchCredentials(apiKey));
var _indexClient = _searchClient.Indexes.GetClient("unit");

SearchParameters sp = new SearchParameters() { SearchMode = SearchMode.All};
var result=  _indexClient.Documents.Search(null , sp);

2 个答案:

答案 0 :(得分:0)

在Azure认知搜索中,您使用$count$top$skip参数来返回搜索结果数。以下示例显示了一个请求的总点击示例请求,该索引被称为“在线目录”,返回为@odata.count

GET /indexes/online-catalog/docs?search=*&$top=15&$skip=0&$count=true

有关更多详细信息,您可以参考此article

答案 1 :(得分:0)

Azure认知搜索在SearchParameters命名空间中为.NET SDK提供了模型类Microsoft.Azure.Search.Models。您可以设置TopSkip属性来控制返回的文档数。

有关更多属性,请参考docs中的SearchParameters。以下文章提供了在搜索中使用此参数的示例-How to use Azure Cognitive Search from a .NET Application