API поиска Bings не всегда возвращает одинаковое количество результатов - PullRequest
0 голосов
/ 19 ноября 2011

Если я выполняю поиск в Bings Webservice и выполняю поиск без указания Смещения и Счета, я получаю 98 результатов для своего поиска.Если я вместо этого использую смещение (как показано в приведенном ниже коде), общее количество будет только 18.

Разве общее число не должно быть одинаковым, если я укажу смещение или нет?

    BingService soapClient = new BingService();

    SearchRequest request = new SearchRequest();
    request.AppId = ConfigurationManager.AppSettings["BingKey"];
    request.Sources = new BingLiveSearchService.SourceType[] { SourceType.Web };
    request.Query = query;
    request.Web = new BingLiveSearchService.WebRequest { Count = 20, Offset = 21, OffsetSpecified = true, CountSpecified = true };

    string resp = string.Empty;

    var response = soapClient.Search(request);
    if (response.Web != null && response.Web.Total > 0)
    {
        resp += "TOTAL COUNT:" + response.Web.Total + "<br/><br />";
        foreach (var item in response.Web.Results)
        {
            resp += "<div style='padding-bottom:10px;'> + item.Title + "</div>";
        }

    }

1 Ответ

0 голосов
/ 02 июля 2012

Есть несколько слов предупреждения в документации по основам API : "В зависимости от того, насколько популярен запрос, предполагаемое количество результатов может сильно отличаться от реального числа. Не полагайтесь на это число для критических вычислений ". Интересно, аргументы count и offset заставляют вычисление занимать немного больше времени, и поэтому оно останавливается до того, как будет получено столько результатов? Также стоит отметить, что в документации по свойству WebRequest.Count упоминается, что «Минимальное значение для Count равно 1; максимальное значение равно 50», поэтому, если вы укажете значение для Count, вы собираетесь получить меньше 98 результатов, которые вы видели без указания количества.

...