2

我想开发一个应用程序来提取我们查询的任何歌曲的歌手。因此,如果有人从 Some Nights 专辑中输入 Carry On,该应用程序应该会找出所有唱这首歌的人。谢谢。

4

1 回答 1

2

您可以像这样使用Freebase Search APISearch Metaschema进行搜索:

https://www.googleapis.com/freebase/v1/search?query=Carry+On&filter=(all+/music/release_track/release:"Some+Nights")&output=(/music/release_track/release+/music/release_track/recording./music/recording/artist)

此 API 请求包含三个部分:查询、过滤器和输出参数。查询只是您要查找的曲目的名称:

query=Carry+On

过滤器参数将结果限制为仅属于名为“Some Nights”的专辑发行版中的曲目

filter=(all+/music/release_track/release:"Some+Nights")

输出参数告诉 API 要在响应中返回哪些属性。在这种情况下,我们想知道该曲目属于哪个发行版本以及哪个艺术家录制了该曲目。

output=(/music/release_track/release+/music/release_track/recording./music/recording/artist)

您会注意到这个查询现在实际上返回了 8 个匹配的曲目。这是因为这张专辑的许多不同版本都包含该曲目的录音(不一定是完全相同的录音)。

对于您正在构建的内容,听起来您应该能够获得第一个结果。您可以通过向请求添加限制参数来限制搜索 API 仅返回第一个结果:

limit=1
于 2013-11-01T18:38:40.197 回答