我有一个使用 Azure Datamarketplace 中的新 Bing API 的应用程序。我曾经能够使用 OR AND 等简单语法查询 Bing API。这在新 API 中似乎不起作用。
旧语法:
“杰克逊维尔美洲虎”或“NFL美洲虎”或“亚特兰大猎鹰”
这会给我一个包含任何这些短语的查询(我正在为新闻进行 rt_Sports 查询)。
我首先在查询上调用 HttpEncode,但仍然没有得到结果。如果我删除所有“标记,它会起作用,但有时我会得到关于猎鹰和美洲虎(动物)的新闻的结果......不是我想要的。
任何人都知道如何形成包含多个短语的查询?
我试图不使用 OR,不使用',使用“,使用 | 而不是 OR。所有这些都对 BING 网站起作用,只是不在 API 中。
我刚刚通过 Bing 进行了尝试,得到了 3600 万个结果:
美式橄榄球 | 西雅图海鹰队 | 纽约巨人队 | 达拉斯牛仔队 | 新奥尔良圣徒队 | 新英格兰爱国者队 | 杰克逊维尔美洲虎
API 中的相同内容返回 0。
我收到了一位朋友的电子邮件,我也将这个问题通过电子邮件发送给了他,他的想法是我做错了。应该有一种方法可以使用多个 where 子句从 Bing 对象中形成 LINQ 查询。
但我不明白这怎么可能。您允许 BingSearchContainer,然后在容器上调用 News 方法。News 方法只有一个 Query 参数。
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);