Каждый раз, когда вызывается API, API поиска получает группу возможных совпадений, начиная с в наборе результатов, а затем отфильтровывает результаты на основе различных параметров (например, спам, дубликаты, настройки безопасного поиска и т. д.), в итоге оставляя окончательный результат. набор. Если конечный результат после фильтрации и оптимизации превышает параметр count, то будет возвращено количество результатов, равное count. Если параметр больше, чем окончательный набор результатов count, то возвращается окончательный набор результатов, который будет меньше, чем параметр count. Если поисковый API вызывается снова, передавая параметр offset для получения следующего набора результатов, то процесс фильтрации повторяется снова для следующего набора результатов, что означает, что он также может быть меньше, чем count.
Не следует ожидать, что для каждого вызова API всегда будет возвращаться полное число результатов параметра count. Если требуются дополнительные результаты поиска помимо возвращенного числа, запрос следует вызвать снова, передав параметр offset со значением, равным количеству результатов, возвращенных в предыдущем вызове API. Это также означает, что при последующих вызовах API параметр offset никогда не должен быть жестко запрограммированным значением и всегда должен рассчитываться на основе результатов предыдущих запросов.
totalEstimatedMatches также может внести путаницу в отношении результатов API поиска Bing. Слово «оценка» важно, потому что это число является оценкой, основанной на первоначальном наборе быстрых результатов до описанной выше фильтрации. Кроме того, значение totalEstimatedMatches может меняться по мере повторения набора результатов путем выполнения последующих вызовов API с увеличением значения смещения. totalEstimatedMatches следует использовать только в качестве приблизительного ориентира, указывающего величину возможного набора результатов, и его не следует использовать для определения количества результатов, которые в конечном итоге будут возвращены. Чтобы запросить все возможные результаты, вы должны продолжать выполнять вызовы API, передавая offset со значением суммы результатов, возвращенных в предыдущих вызовах, до тех пор, пока эта сумма не превысит totalEstimatedMatches самого последнего вызова API.
Обратите внимание, что вы можете увидеть такое же поведение, перейдя напрямую на сайт bing.com и используя такой запрос, как https://www.bing.com/search?q=bill+gates&count=50. Обратите внимание, что вы получите около 34 результатов с totalEstimatedMatches ~567 000 (действительно на июнь 2017 года, будущие поисковые запросы могут измениться). Если вы нажмете стрелку "следующая страница", вы увидите, выполненный запрос начнется со смещения 34, возвращенного в первом запросе (т.е. https://www.bing.com/search?q=bill+gates&count=50&first=34). Если вы нажмете «Далее» еще несколько раз, вы увидите, что totalEstimatedMatches также меняется от страницы к странице.
person
Matt Small
schedule
13.10.2017