2

新しいドメイン名を使用するために、Bing Web Search API のベータ版で以前に作成した次のスニペットを更新しました: api.cognitive.microsoft.com/bing/v5.0/search that Bing Web Search API now -

サンプルを実行するには、独自の Bing API キーを置き換えてください

<!DOCTYPE html>
<html>
<head>
    <title>Bing Search v5 - show all results</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script>

var total;
var ofst = 0;
var pgcnt=50;
var results = '';

var burl = "https://api.cognitive.microsoft.com/bing/v5.0/search/?q=Bill Gates&count=" + pgcnt + "&offset=" + ofst + "&mkt=en-us&freshness=Month"; //737 results
//var burl = "https://api.cognitive.microsoft.com/bing/v5.0/search/?q=Bill Gates&count=" + pgcnt + "&offset=" + ofst + "&mkt=en-us"; //304 results
//var burl = "https://api.cognitive.microsoft.com/bing/v5.0/search/?q=site:mvark.blogspot.com&count=" + pgcnt + "&offset=" + ofst + "&mkt=en-us&freshness=Month"; 

$(function() { 

function xhr_get(url) {
  return $.ajax({
  url: url,
  beforeSend: function(xhrObj){
                // Request headers
                xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","abc123"); //replace value with your own key
            },
  type: "GET",

  })
 .done(function(data) {
      		total = data.webPages.totalEstimatedMatches; 
		len = data.webPages.value.length
		for (i=0; i<len; i++ )
		{
		   results += "<p><a href='" + data.webPages.value[i].url + "'>" + data.webPages.value[i].name + "</a>: " + data.webPages.value[i].snippet + "</p>";
		}
		$('#content').html(results);
	ofst += pgcnt;
	if (total > ofst) { 

	burl = "https://api.cognitive.microsoft.com/bing/v5.0/search/?q=Bill Gates&count=" + pgcnt + "&offset=" + ofst + "&mkt=en-us&freshness=Month"; 
	//burl = "https://api.cognitive.microsoft.com/bing/v5.0/search/?q=Bill Gates&count=" + pgcnt + "&offset=" + ofst + "&mkt=en-us"; 
	//burl = "https://api.cognitive.microsoft.com/bing/v5.0/search/?q=site:mvark.blogspot.com&count=" + pgcnt + "&offset=" + ofst + "&mkt=en-us&freshness=Month"; 
	xhr_get(burl);
	}
	else { console.log('No more results to show'); 
	}
  })
}

xhr_get(burl);

});
</script> 
Results:  <div id="content">Fetching...</div>
</body>
</html>

以前に返された結果と現在フェッチされている結果に違いがあります。変更された動作の原因となっているコードに何か問題があるかどうか、および次の回答を知りたいです。

  1. 一部の検索キーワードでは、返される結果の最大数が正確に 1000 (totalEstimatedMatches=1000) になっていることがわかりましたが、Bing の Web サイトを検索するとさらに多くの結果が返されます。上限は 1000 で、スロットリングはありますか?
  2. freshness =Monthリクエスト パラメータを追加すると、それを使用しなかった場合に得られるより多くの結果が返されますか? 鮮度が指定されていない場合、すべての結果を取得するのがデフォルトの動作ではありませんか?
4

1 に答える 1

1
  1. Bing には、totalEstimatedMatches の最大値がありません。覚えておくことは重要ですが、これは推定値であり、推定値が具体的に何を意味するのかはわかりません. 500 < totalEstimatedMatches < 2000それは、私たちが知っているすべてのことを潜在的に意味する可能性があります. 彼らがこの数を「推定」する方法は、ドキュメントにはありません。
  2. 不協和音がどこにあるかを理解する前に、私はあなたの2番目の質問を長い間見つめていました. &responseFilter=Webpages作成しているすべての URL の末尾に追加してみてください。応答を集計すると、Web の結果のみをカウントしているように見えますが、クエリによって Web の結果のみが返されるように指定していません。
于 2016-11-23T19:48:01.653 に答える