首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >免费搜索API -获取所有结果

免费搜索API -获取所有结果
EN

Stack Overflow用户
提问于 2015-06-10 14:42:00
回答 1查看 124关注 0票数 1

现在可以从获得所有结果吗?

今天,我尝试了两种Java方法:

代码语言:javascript
复制
  1) www.googleapis.com/freebase/v1/search?filter=..."
   Using "cursor"(integer) and "limit" options.

  2) www.freebase.com/ajax/156b.lib.www.tags.svn.freebase-site.googlecode.dev/cuecard/mqlread.ajax?&query=
   Try to simulate 'Query Editor' (https://www.freebase.com/query)
   Using "cursor" from the previous results set (String).

但在这两种方法中我只得到

代码语言:javascript
复制
       - 200 (first option)
       - 500 (second option)

记录(应该有6000条记录).

经过几次迭代,我得到了

代码语言:javascript
复制
            - "Request too large, cursor: 200, limit: 200" (first option, only 1 iteration)
            - "cursor is false" (second option, 6 iterations)

消息。

是Freebase问题还是API限制?

我怎么能得到所有的结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-10 15:24:58

如果没有具体的说明,那么很难说问题是什么,但是Search肯定是,而不是,目的是返回完整的结果。MQLRead API应该返回完整的结果,尽管我认为6K结果接近其预期使用的上限。如果您没有遇到像“查询太难”这样的错误,我怀疑您的查询中有什么东西是无意中以您预期不到的方式限制它的。

从Freebase获取大量信息的另一种方法是从数据转储中提取信息。

注意: Freebase不再被更新,MQLRead和Search很快就会消失(尽管谷歌已经说过,Search将被一个基于知识图的等价物取代)。

更新:当我使用“返回”:“计数”从下面的注释中运行查询时,我得到的值为536,它与使用游标的六次迭代的报告结果相匹配。

请注意,MQLRead so not 计算出生地等地的传递闭包,因此查询出生在葡萄牙的人不会返回被列为出生在里斯本的人(另有1143人)。

Search将返回传递闭包,但我不确定它是否一定会完成。它实际上是设计和调优的,以返回前几个最佳匹配项,而不是详尽的列表,但是如果您想尝试使用它,可以在示例应用程序中使用这个查询:

birth+))&limit=10&scoring=entity&lang=en

或者它相当于原始API:

birth+))&lang=en&indent=true

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30759666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档