Индексирование базы данных музыкальных текстов - PullRequest
1 голос
/ 18 апреля 2011

Итак, я хочу проиндексировать текст песни с веб-сайта текстов песен, а затем выполнить операции над текстом песен (поиск определенных исполнителей, термины, шаблоны и т. Д.).

Я полагаю, что лучший сценарий, если для меня уже есть какой-то структурированный формат файла -> кто-нибудь знает, существует ли что-то подобное?

Следующим лучшим вариантом будет сайт, который «поддается» тому, что я пытаюсь сделать -> любой такой сайт?

Есть ли какие-либо комментарии о том, как я могу сделать это быстро? (Это должен быть веселый проект, а не тяжелое приложение)

Спасибо!

Ответы [ 2 ]

3 голосов
/ 18 апреля 2011

Скачивать лирическую базу данных с сайта - плохая идея, вместо этого вы можете запросить ее для каждой лирики.

Даже если вы загрузите все тексты песен, не храните их в плоском файле (возможно, в формате xml?) Вместо использования базы данных, такой как sqlite.В противном случае такие операции, как поиск или листинг, были бы болезненными.

Но мы не имеем представления о доступных сайтах.

Редактировать;Я нашел ChartLyrics API ;Вы можете легко использовать их API.

2 голосов
/ 18 апреля 2011

Вообще,

1) Загрузите этот текст и сохраните его в отдельной таблице в вашей базе данных

таблица: текст песни (пример)

+---------+-------------+-----------------+-------------------------------+
| lyr_id  | lyr_artist  | lyr_title       | lyr_content                   |
+---------+-------------+-----------------+-------------------------------+
| 1       | Metallica   | The Unforgiven  | New blood joins this earth... |
+---------+-------------+-----------------+-------------------------------+
...
+---------+-------------+-----------------+-------------------------------+

2) Поиск исполнителя в столбце lyr_artist, название песни в столбце lyr_title, текст (ключевые слова) в lyr_content и т. Д.

Примеры запросов

SELECT * FROM lyrics WHERE lyr_artist='artist';
SELECT * FROM lyrics WHERE lyr_title='song_title';
SELECT * FROM lyrics WHERE lyr_content LIKE '%word1%' AND lyr_content LIKE '%word2%'

Ну, в общем, как-то так .. или смешайте ГДЕ состояние. Вы можете использовать WHERE ... LIKE для таких столбцов, как название песни и исполнитель, например, чтобы найти песню "The Unforgiven", если пользователь запрашивает ключевое слово "Unforgiven" и т. Д.

3) Использовать результат запроса для отображения результатов поиска


Примечание. Хранение данных в файлах на сервере не так хорошо, как хранение в базе данных, с точки зрения скорости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...