标题中带有 & 的搜索查询给出了错误的结果
Search query with & in title gives wrong results
我一直在测试 musicbrainz API,我发现了一个问题。当标题的名称中包含“&”时,查询 returns 会得到错误的结果。
例如:标题是 'auf & ab' 并且查询 returns 一个名为 'auf, auf, auf'.
的标题
我通过用 'and' 替换 '&' 来解决这个问题,如下所示:
if (title.includes('&')){title = title.replace('&','and')}
这个returns正确的结果。
我不确定这是否是解决此问题的方法。
这是我的查询:
https://musicbrainz.org/ws/2/recording/?query=recording:auf%20&%20ab%20%26%26%20artist:montez&fmt=json&limit=5
我认为您需要对“space”(%20)和“&”(%26)字符进行编码,因为它们在 url 中使用,& 将是解码为查询字符串中的另一个新参数;试试这个:
https://musicbrainz.org/ws/2/recording/?query=recording:auf%20%26%20ab&artist:montez&fmt=json&limit=5
这样,您搜索“auf & ab” -> “auf%20%26%20ab”;您可以使用 encodeURIComponent("auf & ab")
实现此结果
编辑:更改了 encodeURI -> encodeURIComponent
我一直在测试 musicbrainz API,我发现了一个问题。当标题的名称中包含“&”时,查询 returns 会得到错误的结果。 例如:标题是 'auf & ab' 并且查询 returns 一个名为 'auf, auf, auf'.
的标题我通过用 'and' 替换 '&' 来解决这个问题,如下所示:
if (title.includes('&')){title = title.replace('&','and')}
这个returns正确的结果。 我不确定这是否是解决此问题的方法。 这是我的查询: https://musicbrainz.org/ws/2/recording/?query=recording:auf%20&%20ab%20%26%26%20artist:montez&fmt=json&limit=5
我认为您需要对“space”(%20)和“&”(%26)字符进行编码,因为它们在 url 中使用,& 将是解码为查询字符串中的另一个新参数;试试这个:
https://musicbrainz.org/ws/2/recording/?query=recording:auf%20%26%20ab&artist:montez&fmt=json&limit=5
这样,您搜索“auf & ab” -> “auf%20%26%20ab”;您可以使用 encodeURIComponent("auf & ab")
编辑:更改了 encodeURI -> encodeURIComponent