目前匹配算法优化后,每次都需要将之前的匹配结果清空然后重新匹配。我也不断在尽量简化匹配过程,尽可能提高匹配效率。之前的过程中,启了四个匹配过程同时跑,到跟上帖子进来的速度大概花了3天。随着帖子数量不断增加,在目前有限的硬件资源情况下,迭代过程可能会需要更长的时间。据之前的统计,匹配主要耗时过程如下:
1.首先最耗时的是在入库过程。之前的匹配结果大致有2亿条,加上维护数据库索引,这个过程大概就需要50个小时以上。
2.匹配算法现在包括项目名与帖子标题、项目名与帖子标签、项目别名与帖子标题、项目标签和帖子标题、项目标签和帖子标签匹配5个过程,其中项目名因为需要先分词再匹配,相对比较耗时。
优化每次优化的迭代过程的大致想法为:
跑一个比较粗略的匹配过程,尽可能将召回率提高到99%,每次优化后的匹配过程只基于这些匹配到了项目的帖子,这可以减少匹配过程中读帖子、帖子标签的匹配、建帖子索引的时间,也缩小了帖子索引的大小,提高匹配时的搜索效率。具体优化多少待测试。