AzureDatamarketplaceの新しいBingAPIを使用しているアプリケーションがあります。以前は、ORANDなどを使用した単純な構文を使用してBingAPIをクエリできました。これは、新しいAPIでは機能しないようです。
古い構文:
「ジャクソンビルジャガーズ」または「NFLジャガーズ」または「アトランタファルコンズ」
それは私にそれらのフレーズのいずれかでクエリを与えるでしょう(私はニュースのためにrt_Sportsクエリを作成しています)。
最初にクエリでHttpEncodeを呼び出していますが、それでも結果が得られません。すべての「」マークを削除すると機能しますが、ファルコンズとジャガー(動物)に関するニュースの結果が表示されることがあります...私が望んでいたものではありません。
複数のフレーズを使用するクエリを作成する方法を知っている人はいますか?
ORを使用せず、'を使用せず、 "を使用し、ORの代わりに|を使用しようとしました。これらはすべて、APIではなく、WebサイトのBINGに対して機能します。
Bingを介してこれを試したところ、3600万件の結果が得られました。
NFLフットボール| シアトルシーホークス| ニューヨークジャイアンツ| ダラスカウボーイズ| ニューオーリンズセインツ| ニューイングランドペイトリオッツ| ジャクソンビルジャガーズ
APIの同じものは0を返します。
私もこの質問を電子メールで送信した友人から電子メールを受け取りました、そして彼の考えは私がそれについて間違っていると思っていました。複数のwhere句を使用してBingオブジェクトからLINQクエリを作成する方法があるはずです。
しかし、それがどのように可能になるかはわかりません。BingSearchContainerを許可してから、コンテナーのNewsメソッドを呼び出します。Newsメソッドには、Queryパラメーターが1つだけあります。
var bingContainer = new Bing.BingSearchContainer(new Uri("https://api.datamarket.azure.com/Bing/Search"));
bingContainer.Credentials = new NetworkCredential(App.BingAPIAccountKey, App.BingAPIAccountKey);
string unifiedQuery = "NFL Football | Jacksonville Jaguars | Atlanta Falcons";
var newsQuery = bingContainer.News(unifiedQuery, null, "en-US", "Strict", null, null, null, "rt_Sports", "Relevance");
newsQuery.BeginExecute(BingNewsResultLoadedCallback, newsQuery);