【问题标题】:Musicbrainz query case sensitive?Musicbrainz 查询是否区分大小写?
【发布时间】:2018-04-26 19:48:58
【问题描述】:

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

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

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

<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>

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

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

返回:

<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="526823" offset="0">
    ...
  </recording-list>
</metadata>

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

【问题讨论】:

  • 你拼错了女儿。第一个查询是正确的,因为找不到艺术家姓名拼写错误的专辑。第二个查询实际上找到了标题为“And”的专辑以及附加到查询的所有其他内容。
  • 啊,这就解释了。您可以将此作为答案发布,以便我接受吗?

标签: java http musicbrainz


【解决方案1】:

查询区分大小写,本质上“AND”作为关键字全部大写。您的第一个查询没有返回任何结果,因为:

"Gilt Complex" AND artistname="Sons and Daugthers" 没有结果。

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

“镀金情结” OR 和 OR 艺术家名="Sons and Daugthers"

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

【讨论】:

    猜你喜欢
    • 2011-03-24
    • 2016-11-04
    • 2018-03-15
    • 2014-09-02
    • 2013-04-25
    • 1970-01-01
    • 2010-11-27
    • 2011-11-16
    • 1970-01-01
    相关资源
    最近更新 更多