我在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,
但我发现那里没有一致性。
任何人都知道这件事吗?
提前致谢, 那提
答案 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