如何从天青搜索中获得所有结果?
问题描述:
目前我正在创建一个应用程序,我需要调用API以进行天蓝色搜索。调用此API:如何从天青搜索中获得所有结果?
https://<searchServiceName>.search.windows.net/indexes/<index-name>/docs/search?api-version=2016-09-01
还提供了所有必需的参数与搜索查询为:
(test||test||test||test||test||test||test)+ Contacts+Campaigns+Companies+Targets+Complanits+Claims+Activities+Opportunities+Completed Activities
问题是,总共有1127行的表有关这个特殊的搜索。但是,我只获得了其中的第一个五十个以下的JSON对象输出。
"@search.nextPageParameters": {
"search": "(test||test||test||test||test||test||test)+ Contacts+Campaigns+Companies+Targets+Complanits+Claims+Activities+Opportunities+Completed Activities",
"skip": 50}
我应该在查询什么样的变化,这样我可以得到所有1127分以上的结果?
答
这是预期的行为。从documentation
(见文档关于$top
查询参数):
$顶部=#(可选)
搜索结果的数量来获取。 默认为50。当通过POST调用 时,此参数被命名为top而不是$ top。 如果 指定大于1000的值,并有超过1000个 结果,只有前1000个结果将返回,用 链接结果的下一页沿(见@ odata.nextLink在下面的例子中 )。
Azure的搜索使用服务器端分页,以防止 一次检索文件太多疑问。默认页面大小为50, ,而最大页面大小为1000.这意味着默认搜索 如果您未指定$ top,则文档最多返回50个结果。如果 有超过50个结果,响应包括信息检索 至多50个结果(见@ odata.nextLink和 @在下面的例子search.nextPageParameters下一个页面。同样,如果您 指定值时比1000 $顶部,有超过 1000个结果,仅前1000个结果返回,与 信息检索最多1000个结果的翻页一起。在此基础上
,有你需要做的几件事:
- 指定
$top
参数的值。由于您没有指定任何值,因此会返回默认的记录数(即50)。 - 由于单个请求最多只能抓取1000条记录,而且您提到该索引包含的记录超过1000条,因此您需要发出多个查询来抓取分页结果。
嗨,感谢您的回复。对于相同的操作有另一个问题。请看看:https://stackoverflow.com/questions/46714067/how-to-get-a-link-to-fetch-next-records-from-azure-search –