3

有谁知道我在哪里可以找到带有以下 URL 的 Bings API 的最新文档:

https://api.datamarket.azure.com/Bing/Search/v1/Web

甚至他们自己的网站在我一直在阅读的 word docs 中有错误的 URL,即https://api.datamarket.azure.com/Bing/SearchWeb/Web不起作用。

我可以让搜索工作并返回结果,但无法获得总记录数,如果我使用复合我可以获得记录数但没有结果。

我只是在寻找如何获得计数和结果的最新示例。

这是我到目前为止所拥有的:

public class GetBingTotalRecordCount
{
    public IEnumerable<DisplayBingWebSearch> DisplayBingSearchResults(string q)
    {
        string BingID = ConfigurationManager.AppSettings["Bing_WebSearchID"];
        string BingWebSearch
            = ConfigurationManager.AppSettings["Bing_WebSearchURL"];
        var BingContainer = new Bing.BingSearchContainer(new Uri(BingWebSearch));
        BingContainer.Credentials = new NetworkCredential(BingID, BingID);
        var query = BingContainer.Composite("Web", HttpUtility.UrlEncode(q),
            "EnableHighlighting", "DisableQueryAlterations", "en-GB", "Strict",
            null, null, null, null, null, null, null, null, null
        ).Execute().First();

        List<DisplayBingWebSearch> data = new List<DisplayBingWebSearch>();
        foreach (var results in query.Web)
        {
            data.Add(new DisplayBingWebSearch() {
                 WebTitle = results.Title
            });
        }
        return data;
    }
}
4

1 回答 1

2

您必须执行自己的计数和分页。

来自 foreach 语句的 results.Count 将获得返回的记录数。

每个查询最多有 50 个结果,您可以使用 $top=x 指定最大结果计数,其中 x 是您想要的最大结果。

前任:https://user:yourAccountKey@api.datamarket.azure.com/Bing/SearchWeb/Web?Query=%27leo%20fender%27&Market=%27en-US%27&$top=50&$format=JSON"

Bing 现在在查询中使用 OData 参数,因此 $top 将是要返回的结果数,而 $skip 是偏移量。

可以在http://go.microsoft.com/fwlink/?LinkID=252146上找到包含 $top 和 $skip 示例的常见问题解答

可以在此处找到不太有用的迁移指南http://go.microsoft.com/fwlink/?LinkID=248077

于 2013-03-15T16:10:45.440 回答