Musicbrainz查询区分大小写?

时间:2018-04-26 19:48:58

标签: java http musicbrainz

我正在运行一个Java应用程序来查询Musicbrainz数据库以获取信息,我遇到了一个特殊的问题。我的应用程序构建的查询(使用WHERE)如下:

java.net.URL.URL

上述查询返回一个空响应:

http://musicbrainz.org/ws/2/recording?query=%22Gilt+Complex%22+AND+artistname%3A+%22Sons+And+Daugthers%22

但是,如果我将AND更改为小写,则查询可以正常运行:

<metadata xmlns="http://musicbrainz.org/ns/mmd-2.0#" xmlns:ext="http://musicbrainz.org/ns/ext#-2.0" created="2018-04-25T14:25:36.224Z">
  <recording-list count="0" offset="0"/>
</metadata>

返回:

http://musicbrainz.org/ws/2/recording?query=%22Gilt+Complex%22+and+artistname%3A+%22Sons+And+Daugthers%22

如果我将查询复制并粘贴到Chrome中,也会发生同样的事情。其他歌曲还没有发生在我身上。谁能解释一下这里发生了什么?

1 个答案:

答案 0 :(得分:3)

查询区分大小写,其实质上是“AND”作为关键字在所有大写字母中。您的第一个查询不会返回任何结果,因为:

“Gilt Complex”和artistname =“Sons and Daugthers”没有结果。

您的第二个查询有数十万个结果,因为它被翻译成:

“Gilt Complex”OR和OR artistname =“Sons and Daugthers”

查询中的最后一个术语不适用于任何内容,只是一个排除项。在这种情况下仅搜索“和”会产生526821个结果,这与我们之前观察到的结果相符。