项目涉及到搜索功能,花了不少时间,现在总结一下。音乐搜索分为两种方式,一种是联想词搜索,
一种是直接搜索。
先说联想词搜索。联想词搜索是说当我们输入某个歌手或歌曲时,出现了类似的联想词,然后点击
联想词,到达搜索结果页面。常见场景是搜索“wang”,出现了歌曲名中有wang的音乐,歌手名有wang的歌手
等联想词,点击后直接到达页面。在这一场景,系统知道用户点击搜索的是歌手还是歌曲。
具体流程如下:
1、将用户输入汉字转换成拼音,判断searchFlag标志,能拿到是联想词搜索,拿不到是直接搜索。
2、如果搜索的是歌手,查出该歌手所有的歌曲(歌手匹配使用字典表模糊搜索)。
3、如果搜索的是歌曲,查出该歌曲所以类似的歌曲(使用字典表模糊搜索)。根据日志表中每首歌的点击量,
按照热度推荐歌曲。
注意:联想词搜索,我们能在程序中确定联想词是歌手还是歌曲。
第二种是直接搜索。是指用户输入信息后,直接点击搜索按钮。
具体流程如下:
1、将用户输入汉字转换成拼音,判断searchFlag标志能否拿到。
2、先查歌手,歌手数目不够,再查歌曲。
最后返回歌手歌曲查询结果。