2011-09-01 3 views
1

У меня есть программа в JAVA, которая отправляет сообщение HTTP GET API Google Книги. Я хочу получить книги, которые отвечают критериям поиска «приготовление пищи». Максимальное количество элементов в ответе - 40, и это номер, который я установил в сообщении GET.Google books API возвращает JSON с кажущимся неправильным значением «totalItem»

https://www.googleapis.com/books/v1/volumes?q=cooking&projection=full&startIndex=0&maxResults=40&key=/*My Key*/ 

В ответ я получаю значение «totalItem» составляет около 450. Это выглядит очень плохо, потому что поиск в Google Книгах GUI или «кулинарные» Урожайность 5,8 млн результатов.

Любой знает, почему это так?

Второй вопрос: Первый запрос я посылаю запрашивает результаты в индексе 0-39, после этого 40-79 ... до 1000. 1000 является ежедневный предел запросов право вдовца на пожизненное владение имуществом умершей жены этого API. По какой-то причине каждый раз, когда я получаю файл JSON, значение «totalItem» отличается! всегда arround 450,
, но я не вижу консистенции там.

Кто-нибудь знает об этом?

Заранее благодарен, Nati.

ответ

1

Итоговые данные получены, openSearch:totalResults. По openSearch specification,

Элемент "totalResults"

Количество результатов поиска, доступных для текущего поиска.

Если элемент totalResults не отображается на странице, то клиент поиска должен рассмотреть текущую страницу, чтобы быть на последней странице результатов поиска.

Ограничения: Значение должно быть неотрицательным целым числом. По умолчанию: значение по умолчанию равно индексу смещения последнего результата поиска на текущей странице. Требования: Элемент может отображаться как ноль или один .

Это не работает для этого API, хотя, если вы уменьшите maxResults до 1, ваши totalItems будут расти до 590s Ничто в документации Google ничего не говорит об этом. Ближайший один я был на youtube API documentation

тег определяет количество элементов в результирующего набора для подачи. Обратите внимание, что значение тега является приблизительным значением и может не представлять точное значение. Кроме того, максимальное значение для этого тега составляет 1,000,000. Вы не должны использовать это значение для создания ссылок на страницы.

Вам нужно totalItems для разбивки на страницы?

+0

Спасибо за ваш ответ. Да! Я хотел получить столько страниц, сколько позволяет API (который должен составлять 1000 запросов/день). Я нашел решение, которое работает для моего проекта - есть много веб-сервисов, которые дают вам связанные слова для данного. Так что вместо того, чтобы делать только один поиск в google book, я делаю много, и я удаляю дубликаты из результата. – Nati

Смежные вопросы