重写ACGINDEX

TheC posted on 2012/08/03

SAE那边的云豆要用光了,正好也对纯KVDB+被动采集的架构感到绝望了,于是本周开始完全重写ACGINDEX。

首先是改变了后台采集数据的方式,之前考虑到SAE按使用量计费的缘故想尽量节约存储资源,所以采取了根据用户搜索被动发起采集的策略。结果证明,这个策略是毁灭性错误的,第一次搜某个关键词的用户会不得不等待一段时间来让后台收集资源,偏偏bangumi娘又很喜欢小黑屋play,而bili娘提供的视频命名方式五花八门很不方便匹配,后台经常需要很久很久才能收集到足够的信息。更加致命的是因为偷懒不想写轮询,用户在这几分钟的等待中得不到任何新提示,只能不停的手动查询查询查询,而返回的信息通常一直都是收集中收集中收集中……啧,想想要是我自己遇到这么个网站早点叉了 所以,这次按照简单粗暴的原则,用python重写了整个后端,先整站抓回来,然后再从自己的数据库里做匹配。顺便吐槽下bili娘,api不提示某个视频是否需要登录也就算了,居然连视频分类也没有,结果还是得自己抓网页...而且,3秒一抓够慢了吧居然这样也封!只能挂代理了么...QAQ

然后是关键词匹配的问题,分词啊同义词什么的对我来说实在是太高深的算法,我能用的也就是完全匹配撑死是like或者pkrget这样,然而偏偏有花名未闻、未闻花名、那朵花、我们[名字很长]的花之类稀奇古怪还每个都有人用的名字,另有叛逆、反逆、反叛 + 鲁鲁修、鲁路修、鲁鲁什的随机排列组合,实在是叫人痛不欲生,汉字为什么这么丰富多彩呢...之前是把这件事交给度娘帮忙,虽然度娘几乎能100%完成同义词转化的任务,可是度娘给出的结果经常和bangumi娘使用的词语不一样,结果还是被判断成了条目不存在...泪流满面。这次抓数据时把bangumi、bili、肉丸三个站的“别名”字段全都抓了回来,如果这三个站收录的别名还无法满足人类的欲望那实在是没办法了 QAQ

啊,写到这里居然刚好下班了,那就先写这么点吧。希望这次重写不会坑,嗯。