Google api 使用Freebase MQL read google api的非唯一查询
似乎我只能使用新的freebase MQL read api执行唯一查询(即在查询中包含实体id): 以下是对id和类型的搜索:Google api 使用Freebase MQL read google api的非唯一查询,google-api,freebase,mql,Google Api,Freebase,Mql,似乎我只能使用新的freebase MQL read api执行唯一查询(即在查询中包含实体id): 以下是对id和类型的搜索: https://www.googleapis.com/freebase/v1/mqlread?query={"name":null,"id":"/en/bob_dylan","type":"/people/person"} 并成功返回: { "result": { "type": "/people/person", "id": "/en/bob_dylan",
https://www.googleapis.com/freebase/v1/mqlread?query={"name":null,"id":"/en/bob_dylan","type":"/people/person"}
并成功返回:
{
"result": {
"type": "/people/person",
"id": "/en/bob_dylan",
"name": "Bob Dylan"
}
}
以下仅使用类型进行搜索:
https://www.googleapis.com/freebase/v1/mqlread?query={"name":null,"type":"/people/person"}
或
并返回以下错误:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "badRequest",
"message": "Unique query may have at most one result. Got 100"
}
],
"code": 400,
"message": "Unique query may have at most one result. Got 100"
}
}
我希望它返回一个人名列表您必须将查询包装在[]中,如下例所示:
https://www.googleapis.com/freebase/v1/mqlread?query=[{"name":[],"type":"/people/person"}]
我最近也遇到了类似的问题。确保获得单个结果集的最佳方法是在mql查询中使用“limit:1”参数。 例如:
https://www.googleapis.com/freebase/v1/mqlread?query={"type":[],"name":"india","limit":1}
这将起作用,但“name”:[]可以简化为“name”:null,因为只有一个唯一的英文名称。如果您想要所有语言的名称,而不仅仅是默认的/lang/en,那么可以使用“name”:[{}]
https://www.googleapis.com/freebase/v1/mqlread?query={"type":[],"name":"india","limit":1}