2011-04-17 54 views
1

所以我想從歌詞網站索引歌詞,然後對歌詞進行操作(搜索某些藝術家,術語,模式等)。索引一個音樂歌詞數據庫

我想最好的情況是,如果已經有一些結構化的文件格式供我使用 - >任何人都知道這樣的事情是否存在?

下一個最好的事情將是一個網站,「可以」我想要做什麼 - >任何這樣的網站?

有關我如何快速完成此任務的一般意見? (這應該是一個有趣的項目,而不是重型應用)

謝謝!

+0

我也有興趣做這樣的事情。你有沒有得到它的任何地方? – Tanj 2011-10-19 02:19:49

回答

3

從網站下載歌詞數據庫不是個好主意,你可以查詢每個你想要的歌詞。

即使你下載了所有歌詞,也不要將它們存儲在平面文件(也許是xml?)上,而不是像sqlite那樣使用數據庫。否則,像搜索或列表這樣的操作將會很痛苦。

但沒有關於可站點的想法。

編輯;我發現ChartLyrics API;您可以輕鬆使用他們的API。

2

一般來說,

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條件。您可以使用WHERE ... LIKE到歌曲標題和藝術家等列,例如,如果用戶要求關鍵字「Unforgiven」,則可以找到歌曲「The Unforgiven」等。

3)使用查詢結果顯示搜索結果


注:在服務器上的文件中存儲的數據並不像它存儲在數據庫中,在速度方面爲好。