当前位置: 首页 > 知识库问答 >
问题:

Spotify高级搜索中的分组运算符

穆正青
2023-03-14

我试图使用Spotify web API在一个响应中返回多个特定结果。

例如,也许我想要Spotify为迈克尔·杰克逊的《颤栗》和深紫的《公路之星》提供详细信息。

因为我还没有Spotify URI,所以我需要使用搜索方法。这里有一个页面描述了Spotify的高级搜索语法。它们支持针对特定字段(如曲目、艺术家和专辑)进行搜索。它们还支持基本的布尔运算符。

但是在那个页面上(或者在internet上的任何其他地方,据我所知)都没有描述布尔运算符优先级是如何工作的,或者您可能如何对搜索条件进行分组。

我需要的东西有效地与(曲目:颤栗和艺术家:“迈克尔·杰克逊”)或(曲目:“公路之星”和艺术家:“深紫色”)相同。

使用类似的标准一次只拉入一个轨道是有效的:

http://ws.spotify.com/search/1/track?q=track:“Thriller”+and+艺术家:“Michael+Jackson”

我试着直接加入括号,尽管文件里没有提到。不走运:

ws.spotify.com/search/1/track?q=(track:“Thriller”+and+艺术家:“Michael+Jackson”)+or+(track:“Highway+Star”+and+艺术家:“Deep+Purple”)

然后我想我应该试着玩优先级。也许他们不只是从左到右处理--也许OR都被解决了,然后是and:

ws.spotify.com/search/1/track?q=track:“Thriller”+or+track:“Highway+Star”+and+艺术家:“Michael+Jackson”+or+艺术家:“Deep+Purple”

这似乎是有希望的,并返回了185个结果,但它不太正确。我看到了其他乐队的“高速公路之星”曲目。这似乎排除了“从左到右”、“或之前-与”和“与之前-或”。这没有任何意义--还剩下什么?

有更多Spotify经验的人能给出这样的查询应该如何工作的一些启示吗?

共有1个答案

钱锐
2023-03-14

不幸的是,Spotify的Web API中对此没有太多的支持(我自己也试过,结果和您一样)。从外观上看,API已经开发了几年,所以我不希望有太大的改变。

但是,我强烈建议您看看Echo Nest API;他们支持非常强大的查询,在他们的API中有一堆很棒的东西。此外,他们还支持将Spotify URI:s用于搜索结果(曲目、艺术家等)。这意味着您可以完全坚持使用EN API。

此外,Echo Nest还在不断地为其API添加更多的特性,因此它确实成为了音乐的通用API(性能超过了Last.fm和其他类似的API)。

 类似资料:
  • 问题内容: 我想进行一个高级搜索,其中用户要搜索可选参数,将来自三个表的数据连接如下 我将附加到查询字符串的可选参数如下 我的问题是如何将代码转换为laravel查询生成器 问题答案: 我没有尝试过此代码,但它应在laravel 4.2下工作。 更新: 为了进行查询验证,您可以使用以下命令打印查询: 并验证您的查询是否与所需查询不同。如果事情有所不同,我们可以根据它们升级我们的查询结构。您还可以使

  • 作为基本运算符的补充,Swift 提供了一些对值进行更加复杂操作的高级运算符。这些运算包括你在 C 或 Objective-C 所熟悉的所有按位和移位运算符。 与 C 的算术运算符不同,Swift 中算术运算符默认不会溢出。溢出行为都会作为错误被捕获。要允许溢出行为,可以使用 Swift 中另一套默认支持的溢出运算符,比如溢出加法运算符( &+ )。所有这些溢出运算符都是以( & )符号开始的。

  • API流改变了吗? 我再也不能为搜索曲目或艺术家进行简单的公共API调用了? 此外,我在Spotify文档中看到,如果查询字符串中提供了market=from_token,则需要授权。否则,可选。

  • 我正在学习node,我正在尝试使用spotifyapi搜索并返回一个艺术家。页面加载了所有内容,但是当我尝试搜索时,我得到了这个错误 经过一番挖掘,我发现我出现这个错误的原因是: 在中,chunk正在返回 请求的路径(假定)是api.spotify.com/v1/search?q=sam

  • 我们的Spotify链接如下所示: 我们刚刚注意到所有这些链接似乎都被破坏了--Spotify只是返回一个网页,上面写着“对不起,找不到那个”。我很难在网上找到任何有关这方面的信息。有没有人知道Spotify最近是否改变了他们的API,我们可以做什么来修复这些URL?

  • 我正在尝试学习与php composer包的帮助。我有一个,其名称为,其中包含、、、字段。我想有基于以上字段的过滤器,它应该在操作符。我当前的查询代码是: 我的问题是: > 我无法获取数据。但是如果我执行下面的代码: 我在运算符中获取值,但需要在其中包含操作。