Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bing图像搜索API返回重复的reults_Api_Azure_Search_Bing_Microsoft Cognitive - Fatal编程技术网

Bing图像搜索API返回重复的reults

Bing图像搜索API返回重复的reults,api,azure,search,bing,microsoft-cognitive,Api,Azure,Search,Bing,Microsoft Cognitive,返回偏移量>200或300的所有重复结果。由于api调用被浪费,这需要花费金钱。如果没有更多的结果,它应该停止返回结果。如果Bing图像搜索API在偏移量值大于可用结果数时停止返回结果,那就更好了,但API不是这样工作的。如果查看,则用户需要检查第一个请求中的totalEstimatedMatches参数,并确保偏移量值具有可接受的值,然后再进行后续请求: 偏移量应小于(totalEstimatedMatches-计数) 因此,如果执行此检查,您可以决定何时停止发出新请求。如果offset超过了

返回偏移量>200或300的所有重复结果。由于api调用被浪费,这需要花费金钱。如果没有更多的结果,它应该停止返回结果。

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

偏移量应小于(totalEstimatedMatches-计数)


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

凯特,这似乎不是答案。首先,totalEstimatedMatches完全不可靠。对于每个连续的结果页面,该值可能会发生很大的变化。第二,我已经看到,即使重复的结果占主导地位以后的网页,新的结果仍然不时出现。例如,第10页可能有29个副本和一个新项目,第11页可能有25个副本和5个新项目。似乎没有办法知道你什么时候达到了不同结果的终点。视频和图像搜索结果包含一个属性“nextOffsetAddCount”(v7更改为“nextOffset”,并稍微更改了其含义)。此字段的目的是消除重复。然而,它似乎不适用于网页搜索。@ElroyFlynn这个问题的发帖人担心浪费api调用。避免浪费api调用的唯一方法是检查totalEstimatedMatches,不管它变化多大,它仍然是决定是否进行另一次调用所必须使用的值。这是避免浪费api调用的唯一解决方案,直接来自文档。nextOffsetAddCount用于在分页时消除重复(您描述的情况,它也不能可靠地做到这一点),但在偏移量超过可用结果数时,它不能防止浪费api调用。OP没有提到他是否尊重totalEstimatedMatches。在任何情况下,根据我的经验,即使在偏移量totalEstimatedMatches-count时也会返回新值。