Запрос Musicbrainz чувствителен к регистру?
Я запускаю Java-приложение, которое запрашивает информацию в базе данных Musicbrainz, и столкнулся со специфической проблемой. Запрос, который создает мое приложение (используя 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. Это не случилось со мной с другими песнями еще. Кто-нибудь может объяснить, что здесь происходит?
1 ответ
Запрос чувствителен к регистру, по сути, "И" в качестве ключевого слова во всех заглавных буквах. Ваш первый запрос не возвращает результатов, потому что:
"Gilt Complex"AND artistname="Sons and Daugthers" не дал результатов.
Ваш второй запрос имеет несколько сотен тысяч результатов, потому что он переведен на:
"Gilt Complex" ИЛИ ИЛИ ИЛИ Artistname = "Сыновья и Дочери"
Последний термин в запросе ни к чему не относится и является просто исключением. Поиск только "и" в этом случае дает 526821 результатов, что соответствует тому, что мы наблюдали ранее.