【问题标题】:Indexing a Music Lyrics Database索引音乐歌词数据库
【发布时间】:2011-08-07 11:14:46
【问题描述】:

所以我想从歌词网站索引歌词,然后对歌词执行操作(搜索某些艺术家、术语、模式等)。

我认为最好的情况是如果已经有一些结构化的文件格式供我使用-->有人知道这样的东西是否存在吗?

下一个最好的事情是一个“适合”我正在尝试做的事情的网站-->任何这样的网站?

关于我如何快速做到这一点的任何一般情况下的 cmet? (这应该是一个有趣的项目,而不是一个繁重的应用程序)

谢谢!

【问题讨论】:

  • 我也有兴趣做这样的事情。你有没有得到任何地方?

标签: php python database search indexing


【解决方案1】:

一般来说

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) 使用查询结果显示搜索结果


注意:在速度方面,将数据存储在服务器上的文件中不如将其存储在数据库中。

【讨论】:

    【解决方案2】:

    从站点下载歌词数据库是个坏主意,您可以查询它以获取您想要的每个歌词。

    即使您下载了所有歌词,也不要将它们存储在平面文件中(可能是 xml?),而应使用 sqlite 之类的数据库。否则搜索或列表等操作会很痛苦。

    但不知道适合的网站。

    编辑;我找到了ChartLyrics API;您可以轻松使用他们的 API。

    【讨论】:

      猜你喜欢
      • 2013-05-23
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 2017-09-07
      • 1970-01-01
      • 2014-04-19
      • 2012-04-01
      相关资源
      最近更新 更多