Почему параметр поиска "Bing News API" ничего не делает? - PullRequest
0 голосов
/ 23 июня 2018

Мне нужно регулярно вызывать результаты поиска новостей Bing через его API, проверяя наличие свежих историй, соответствующих заданному поисковому запросу.

Я хочу возвращать только те публикации, которые были недавно опубликованы с момента последнего вызова API.

Например, ежечасный вызов API должен ограничивать поиск историй с последнего часа до настоящего времени (т. Е. Историй, опубликованных за последний час).

Вот документация для Bing News.Поисковый API - https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-news-api-v7-reference

Он дает понять параметр, "так как", который принимает Unix время эпохи .Я всегда смогу программно сгенерировать время эпохи для начала периода.

Состояния документации:

Время эпохи Unix (метка времени Unix), которое Bing использует для выбораАктуальные темы.Bing возвращает трендовые темы, которые он обнаружил в определенную дату или время, а не в дату, когда тема была опубликована.

Если я хочу вернуть истории, начинающиеся с 22 июня, времени эпохи человеческого времени по ГринвичуПятница, 22 июня 2018 г. 12:39:51 - 1529671191.

Это должно позволить мне сгенерировать URL запроса API https://api.cognitive.microsoft.com/bing/v7.0/news/search?q=%22Cardiff%22&since=1529671191000&count=100&sortBy=Date&textDecorations=true&textFormat=HTML

  • q = "Кардифф"
  • с = 1529671191000
  • count = 100 (максимум)
  • sortBy = Дата
  • textDecorations = true
  • textFormat = HTML

Однако, когда этот вызов выполняется, самое длинное поле datePublished для возвращенного объекта истории - «2018-06-20T23: 18: 00.0000000Z» (т. Е. 20 июня), что, очевидно, составляет два дня до параметр "с тех пор", который я указал.

Это так любопытно и расстраивает.Альтернативный параметр ограничения «свежесть», когда он указан как «День», похоже, успешно ограничивает период поиска до последних 24 часов.Но это недостаточно детально.«Поскольку» не работает и вообще ничего не делает.

Является ли «поскольку» предназначен только для того, чтобы возвращать списки рассказов «Актуальные темы» Bing News, а не результаты поисковых запросов новостей?Язык документации может быть неоднозначным.

Если это так, как я могу ограничить дату начала / «начиная с» для моего поиска через API, кроме как с «свежестью»?

1 Ответ

0 голосов
/ 25 июня 2018

Я думаю, что ответ на ваш вопрос:

Вы говорите:

Однако, когда этот вызов выполняется, самый длинный "datePublished" *Поле 1007 * для возвращаемого исторического объекта - «2018-06-20T23: 18: 00.0000000Z» (т. Е. 20 июня), что явно за два дня до указанного мной параметра «с».

Но перед этим вы цитируете это из документации:

Время эпохи Unix (метка времени Unix), которое Bing использует для выбора популярных тем.Bing возвращает актуальные темы , которые он обнаружил в определенную дату или время, а не дату публикации темы .

Так что он, вероятно, был обнаружен после вашей sinceзначение нельзя сравнивать с полем datePublished

...