1

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);
4

1 に答える 1

1

unifiedQuery次のように変更してみてください。

var unifiedQuery = "'NFL Football' or 'Jacksonville Jaguars' or 'Atlanta Falcons'";

クエリ文字列にこの形式を使用して、サンプルコードに非常によく似たものを試しましたが、うまくいきました。

var bingUri = new Uri("https://api.datamarket.azure.com/Bing/Search/v1/", UriKind.Absolute);
var bingContainer = new BingSearchContainer(bingUri);
bingContainer.Credentials = new NetworkCredential(BingAPIUserName, BingAPIAccountKey);
var unifiedQuery = "'NFL Football' or 'Jacksonville Jaguars' or 'Atlanta Falcons'";

var newsQuery = bingContainer.News(unifiedQuery, null, "en-US", "Strict", null, null, null, "rt_Sports", "Relevance");

var results = newsQuery.Execute();
foreach (var item in results)
{
    Console.WriteLine(item.Title);
}

これが私の結果です:

Fantasy Football 2012: Ranking the Top 25 RBs
NFL Football No Longer Just a Sunday Game
Ravens Notebook: Ed Reed decided to play in game vs. Falcons since he 'wasn't doing anything else'
PrimeSport Partners with Jacksonville Jaguars to Offer Tickets and Official Fan
Packages for all Home and Away Games in 2012 Season
Jaguars cut former Ravens wide receiver Lee Evans
Falcons left tackle Baker finally feels healthy
Jaguars release veteran WR Lee Evans
NFC West: 2012 NFL Training Camp
Atlanta Falcons 2012 NFL TV Schedule
Jaguars training camp: Veteran WR Lee Evans released
Jaguars score 18 points in second half to beat Giants 32-31
Jacksonville Jaguars put running back Maurice Jones-Drew on reserve/did not report list
Postcard from camp: Falcons
Questions abound as NFL preseason opens in earnest
NFL fantasy football: Ryan Mathews loses value

文字列の形式は、unifiedQuery基本的にODataURIクエリ文字列形式です。これらのクエリ文字列がどのように機能するかの完全な説明については、http://www.odata.org/documentation/uri-conventionsにあるODataURI規則のドキュメントを確認してください

于 2012-08-14T03:25:24.203 に答える