从认知搜索中检索超过10万个结果

时间:2020-03-18 14:24:47

标签: c# .net-core odata azure-cognitive-search

我有一个Azure搜索索引,其中包含超过100,000个文档。它有两个可检索字段,它们都是第三方确定的任意字符串ID。它具有更多可搜索和可排序的字段。

我需要能够检索索引中的每个文档。我的应用程序的使用者可能没有提供过滤器,因此没有超过10万个文档。

我可以应付$top=1000的局限性,但是无论我做什么,$skip=100000的局限性一直困扰着我。我正在使用.NET Core SDK的v10.1.0。我删除了汇总结果的代码,这仅显示了我的循环。

var results = index.Documents.Search("*", searchParameters: new SearchParameters
{
  Top = int.MaxValue // I should have fewer than 2B docs...
});

while (results.ContinuationToken != null)
{
  results = index.Documents.ContinueSearch(results.ContinuationToken);
}

一旦获得101k的结果(前1k并跳过100k),它将停止或崩溃,具体取决于我在ContinueSearch通话中使用的防护栏类型。

我还通过HTTP尝试了此方法,结果基本相同。

我愿意接受任何针对.NET Core 3.1的解决方案。只要能正常工作,我就不会嫁给任何特定的软件包或语言。

0 个答案:

没有答案
相关问题