必应图像搜索API返回重复结果

3

Bing 图片搜索API 会返回所有 offset > 200 或 300 的重复结果。这会浪费一些 API 调用次数,需要花费金钱。如果没有更多的结果,API 应该停止返回。

1个回答

0

如果Bing图像搜索API在offset值大于可用结果数量时停止返回结果,那就太好了,但这不是API的工作方式。如果您查看Image Search API Reference,用户需要检查第一个请求中的totalEstimatedMatches参数,并确保offset值具有可接受的值,然后再进行后续请求:

偏移量应小于(totalEstimatedMatches - count)。

因此,如果您执行此检查,可以决定何时停止发出新请求。如果offset超过结果数,API似乎只返回最后count个结果,这可能解释了您获得的“重复结果”。


1
KYT,那似乎不是正确答案。首先,totalEstimatedMatches是完全不可靠的。每一页的值可能会大幅变化。其次,我发现即使后面的页面中占据主导地位的是重复的结果,也偶尔会出现新的结果。例如,第10页可能有29个副本和一个新项目,然后第11页可能有25个副本和5个新项目。似乎没有办法知道何时已经到达了独特结果的结尾。 - Elroy Flynn
视频和图片搜索结果包含一个属性“nextOffsetAddCount”(v7更改为“nextOffset”,并略微更改了含义)。 此字段的目的是消除重复项。 但是,似乎对于网页搜索来说不可用。 注:其中涉及“dupes”一词,可能指“duplicates”的缩写。 - Elroy Flynn
@ElroyFlynn 问题的发布者担心浪费API调用。避免浪费API调用的唯一方法是检查totalEstimatedMatches,无论它变化多少,仍然是决定是否进行另一个调用的值。这是避免浪费API调用的唯一解决方案,并直接来自文档。nextOffsetAddCount用于在分页时消除重复项(您描述的情况,但它也不能可靠地执行此操作),但在偏移超过可用结果数量时无法防止浪费的API调用。 - Dr. Tae
OP没有提到他是否尊重totalEstimatedMatches。无论如何,在我的经验中,即使offset < totalEstimatedMatches-count,也会返回重复项,并且即使offset > totalEstimatedMatches - count,也会返回新值。 - Elroy Flynn

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