我知道默认情况下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);
答案 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
。您可以设置Top
和Skip
属性来控制返回的文档数。
有关更多属性,请参考docs中的SearchParameters。以下文章提供了在搜索中使用此参数的示例-How to use Azure Cognitive Search from a .NET Application