Freebase“关键光标是一个保留字”

时间:2011-11-03 23:40:22

标签: paging freebase mql

关注Freebase docs on Envelope Parameters,正在运行

{
  "cursor":true,
  "query":[{
    "type":"/music/album",
    "artist":"The Police",
    "name":null,
    "limit":10
  }]
}​

results in error "Key cursor is a reserved word"@Domenic notes

出了什么问题?


编辑1

所以this query without a cursor worksthis one doesn't因为cursor was a variable name not a string enclosed in quotes

作为用户,输入"cursor"的损坏版本是有意义的,因为the read parameter type table同时将query"cursor"作为type: string,{{1}如果您将其括在引号中{} 1}}

,则会出错

但是,即使将query括在引号中仍然不起作用:它会为每个查询生成相同的数据。

1 个答案:

答案 0 :(得分:1)

看起来这可能是查询编辑器过于聪明并为我们修复问题的另一种情况。如果您将上述查询复制并粘贴到查询编辑器中并按“运行”,则会在报告时收到此错误:

{
  "code":          "/api/status/error",
      "messages": [{
    "code":    "/api/status/error/mql/type",
    "info": {
      "expected_type": "/type/object",
      "property":      "cursor"
    },
    "message": "Key cursor is a reserved word",
    "path":    "",
    "query": {
      "cursor":       true,
      "error_inside": ".",
      "query": [{
        "artist": "The Police",
        "limit":  10,
        "name":   null,
        "type":   "/music/album"
      }]
    }
  }],
  "status":        "200 OK",
  "transaction_id": "cache;cache03.p01.sjc1:8101;2011-11-04T17:42:13Z;0057"
}

但是如果你单击该查询的永久链接,它会将其更改为此查询并自动将cursor属性设置为true。

[{
  "type":   "/music/album",
  "artist": "The Police",
  "name":   null,
  "limit":  10
}]​

这是因为MQL读取服务要求查询嵌套在query envelope内,但查询编辑器只接受您提供的查询并自动将其包装在适当的查询信封中。

MQL read service的新版本中,我们已取消查询信封,现在 cursor 只是HTTP GET请求的参数。