我正在使用Windows Azure Marketplace中的 Bing搜索API (即替换旧的Bing 2.0 API的API,该API将于2012年8月1日到期)。 Microsoft提供的Migration Guide声明:
如果没有更多结果页面,则
/feed/link[@rel=’next’]
属性将不再显示[...]。
然而,似乎并非总是如此。例如,"Roger Federer"
的新闻查询不包含link
元素:
请求: https://api.datamarket.azure.com/Data.ashx/Bing/Search/News?Query=%27"Roger+Federer"%27
响应:
<feed xmlns:base="https://api.datamarket.azure.com/Data.ashx/Bing/Search/News"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://www.w3.org/2005/Atom">
<title type="text">"Roger Federer"</title>
<subtitle type="text">Bing News Search</subtitle>
<id>https://api.datamarket.azure.com/Data.ashx/Bing/Search/News?Query='"Roger Federer"'</id>
<rights type="text"/>
<updated>2012-07-26T15:43:03Z</updated>
<entry>
<!-- ... -->
</entry>
<!-- ... -->
</feed>
尽管如此,还有更多新闻:https://api.datamarket.azure.com/Data.ashx/Bing/Search/News?Query=%27"Roger+Federer"%27&$skip=50
有人知道问题出在哪里吗? (或者有可靠的API文档?)
答案 0 :(得分:0)
要做的一件事是更新你的BingSearchContainer.cs - 我发现当我第一次使用它时有一个旧版本导致我这样的各种问题。当我更新了许多东西开始工作。
我认为问题在于BingSearchContainer正在“修复”您的查询并搞砸了您。请尝试以下方法:
然后尝试在没有“标记的情况下进行查询。它可能会成功并返回结果。
尝试使用'代替,你可能会得到一些结果。
我认为默认情况下,容器会将所有查询转义为单个词组匹配。所以只需添加搜索即可。现在当你确实有两个短语时,你需要搜索......我也无法工作。
答案 1 :(得分:0)
我再也无法重现:现在,响应包含link
元素。
我想Bing家伙已经解决了这个问题。