Google图书API会返回带有看似错误的“totalItem”值的JSON

时间:2011-09-01 06:40:01

标签: json api google-books

我在JAVA中有一个程序,它向Google Books API发送HTTP GET消息。 我想获得符合搜索标准“烹饪”的书籍。 响应中的最大项目数为40,这是我在GET消息中设置的数字。

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

在我得到的回复中,“totalItem”的值约为450。 这看起来非常错误,因为在谷歌图书GUI或“烹饪”中搜索会产生580万个结果。

任何人都知道为什么会这样?

第二期:  我发送的第一个请求在索引0-39之后询问结果,之后是40-79 ......直到1000。  1000是此API的curtesy查询的每日限制。  出于某种原因,每次我获得JSON文件时,“totalItem”值都不同!总是四周450,
 但我发现那里没有一致性。

任何人都知道这件事吗?

提前致谢, 那提

2 个答案:

答案 0 :(得分:2)

检索到的totalItems实际上是openSearch:totalResults。根据{{​​3}},

  

“totalResults”元素

     

当前搜索可用的搜索结果数。

     

如果totalResults元素没有出现在页面上那么   搜索客户端应该将当前页面视为最后一页   搜索结果。

     

限制:该值必须是非负整数。默认值:   默认值等于最后一个搜索结果的偏移索引   在当前页面上。要求:元素可能显示为零或一   时间。

这不适用于此API,如果将maxResults减少到1,则totalItems将飙升至590秒。谷歌文档中没有任何内容明确说明这一点。我得到的最接近的是openSearch specification

  

标签用于标识项目数   Feed的结果集。请注意,标签值是   近似值可能不代表精确值。除此之外   此标记的最大值为1,000,000。您不应该使用此值   创建分页链接。

您需要totalItems分页吗?

答案 1 :(得分:0)

要回答有关book api和books GUI之间搜索结果的第一个问题,请参阅以下主题。与GUI搜索中的内容和元数据以及api中的元数据有关。

http://www.google.com/support/forum/p/booksearch-apis/thread?tid=38628f43b3bf6ee4&hl=en