当我在freebase查询构建器
中运行此查询时[{
"/type/object/id": "/en/michael_jackson",
"/type/object/name": null,
"/type/object/type": "/music/artist",
"/music/artist/album": [{
"id": null,
"name": [],
"release_type!=": "Single",
"/music/album/primary_release": [{
"name": null,
"track_list": [{name:null}]
}]
}]
}];
我收到了正确的结果,包括专辑和曲目列表,但是如果将查询更改为
[{
"/type/object/id": "/en/carly_rae_jepsen",
"/type/object/name": null,
"/type/object/type": "/music/artist",
"/music/artist/album": [{
"id": null,
"name": [],
"release_type!=": "Single",
"/music/album/primary_release": [{
"name": null,
"track_list": [{name:null}]
}]
}]
}];
我什么都不回来。您可以在http://www.freebase.com/queryeditor处尝试这两个查询。有人能指出我做错了什么吗?这两个都是艺术家,所以我应该回到家里,并跟踪Carly Rae Jepsen的名单。
答案 0 :(得分:1)
并非所有相册都记录了主要版本。除非您真的关心这一点,否则我会放宽您的约束并使用this之类的查询:
[{
"id": "/en/carly_rae_jepsen",
"name": null,
"type": "/music/artist",
"/music/artist/album": [{
"id": null,
"name": null,
"release_type!=": "Single",
"/music/album/releases": [{
"name": null,
"track_list": [{"name":null}]
}]
}]
}]
查询的其他一些调整:
如果您希望主要版本可用,但没有限制查询,则可以使用“optional”:true。你可以通过按发布日期对所有版本进行排序,然后只选择第一个版本(假设它很有可能成为主要版本)来获得更好的效果。
生成的查询看起来像this:
[{
"id": "/en/carly_rae_jepsen",
"name": null,
"type": "/music/artist",
"album": [{
"id": null,
"name": [],
"release_type!=": "Single",
"primary_release": [{
"optional": true,
"name": null,
"track_list": [{
"name": null
}]
}],
"releases": [{
"name": null,
"track_list": [{
"name": null
}],
"release_date": null,
"sort": "release_date",
"limit": 1
}]
}]
}]