必应网络搜索API - 结果记录数量有限

4

我正在使用Bing Web Search API v7,我发送以下请求(仅选择几个):

/bing/v7.0/search?q=mate%C5%99sk%C3%A1%20%C5%A1kola&count=50&offset=0&responseFilter=Webpages
/bing/v7.0/search?q=mate%C5%99sk%C3%A1%20%C5%A1kola&count=50&offset=50&responseFilter=Webpages
/bing/v7.0/search?q=mate%C5%99sk%C3%A1%20%C5%A1kola&count=50&offset=950&responseFilter=Webpages
/bing/v7.0/search?q=mate%C5%99sk%C3%A1%20%C5%A1kola&count=50&offset=1000&responseFilter=Webpages
/bing/v7.0/search?q=mate%C5%99sk%C3%A1%20%C5%A1kola&count=50&offset=1050&responseFilter=Webpages
  • 第一个搜索请求,使用offset=0,返回50条记录,totalEstimatedMatches>50000

  • 第二个请求,使用offset=50,返回另外50条记录,totalEstimatedMatches的值不同,但仍然高于50000。

  • 以增加的offset进行类似的操作(未在上面展示)。

  • 但是,请求使用offset=1000或任何offset>=1000的值时,提供的结果与请求offset=950返回的记录相同。

事实上,这种行为对应于MS Bing网页搜索——当我点击带有offset 1001(或更高页面)的page 101时,我实际上得到的是带有offset 951page 96

因此,即使应该有超过50000个结果(我知道totalEstimatedMatches只是一个估计值,实际值可能有所不同),我无法找出访问超过1000个结果的任何方法。

有人知道如何获取超过1000个网页结果吗(超过100页,每页10个记录/超过20页,每页50个记录)?

1个回答

2
搜索引擎会优化它们的索引,并返回少于totalEstimatedMatches的结果,以便实现以下两个目的:1)停止服务重复页面;2)仅关注顶部页面的相关性。如果用户在前2-3页找不到结果,则大多数(如果不是99.x%)用户会更改查询。因此,对于搜索引擎来说,为给定的查询存储数十亿个页面的索引可能不值得。请注意,这种行为在所有搜索引擎中都很常见,而不仅仅是Bing。

1
你说得对,通常的用例(搜索用户)只需要2-3页的结果就足够了。这里的用例是搜索一个通用术语(例如“学校”),通过处理许多结果来建立出现次数的注册表(即“学校列表”)。谜题在于为什么要呈现成千上万甚至数百万的结果信息,但只提供前一千个结果的访问权限。 - Petr Stupka
1
为此,您可以尝试使用必应实体搜索API。这应该会给您一个现成的列表。如果那不符合您的要求,也许您需要一组不同的查询并在其中进行挖掘。例如,“学校”,“公立学校”,“政府学校”,“私立学校”等。 - Ronak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接