2016-07-29 26 views

Antwort

0

Es wäre schön, wenn die Bing Image Search-API keine Ergebnisse mehr liefert, wenn der Wert offset größer ist als die Anzahl der verfügbaren Ergebnisse, aber so funktioniert die API nicht. Wenn man sich die Image Search API Reference aussieht, werden die Benutzer erwartet, dass die totalEstimatedMatches Parameter aus der ersten Anforderung zu überprüfen und sicherzustellen, dass der offset Wert einen akzeptablen Wert hat, bevor nachfolgende Anforderungen machen:

Der Offset sollte weniger als (totalEstimatedMatches - Anzahl).

Wenn Sie diese Prüfung durchführen, können Sie entscheiden, wann Sie neue Anfragen beenden möchten. Wenn offset die Anzahl der Ergebnisse übersteigt, sieht es so aus, als ob die API nur die letzten count Ergebnisse zurückgibt, die die "doppelten Ergebnisse" erklären würden, die Sie erhalten.

+0

KYT, das scheint nicht die Antwort zu sein. Erstens ist das totalEstimatedMatches völlig unzuverlässig. Der Wert kann sich für jede nachfolgende Ergebnisseite stark ändern. Zweitens habe ich gesehen, dass, obwohl doppelte Ergebnisse die späteren Seiten dominieren, von Zeit zu Zeit immer noch neue Ergebnisse erscheinen. Zum Beispiel kann Seite 10 29 Duplikate und einen neuen Gegenstand haben, dann kann Seite 11 25 Duplikate und 5 neue Gegenstände haben. Es scheint keine Möglichkeit zu geben, zu wissen, wann Sie das Ende bestimmter Ergebnisse erreicht haben. –

+0

P.S. Die Video- und Bilder-Suchergebnisse enthalten eine Eigenschaft "nextOffsetAddCount" (v7 geändert zu "nextOffset" und änderte die Bedeutung ein bisschen.) Der Zweck dieses Feldes ist es, Duples zu eliminieren. Es scheint jedoch nicht verfügbar zu sein für Webseiten-Suchen. –

+0

@ElroyFlynn Das Plakat der Frage war besorgt über das Verschwenden von api-Rufen. Der einzige Weg, um zu vermeiden, dass API-Aufrufe verschwendet werden, besteht darin, gegen totalEstatiatedMatches zu prüfen, und wie sehr es auch variiert, es ist immer noch der Wert, den man verwenden muss, um zu entscheiden, ob man einen weiteren Anruf tätigt oder nicht. Dies ist die einzige Lösung, um zu vermeiden, dass API-Aufrufe verschwendet werden, und kommt direkt aus der Dokumentation. nextOffsetAddCount wird zum Eliminieren von Duplikaten beim Paging verwendet (der Fall, den Sie beschrieben haben, und tut dies auch nicht zuverlässig), tut aber nichts, um vergeudete API-Aufrufe zu verhindern, wenn der Offset die Anzahl der verfügbaren Ergebnisse übersteigt. – KYT