考虑数据量比较多的情况下,目前假设千万级别,如何从一张表里面根据文章如何根据现有的文章标题查找相似度最高的10篇文章,比如,现有的标题:我的绯闻非人女友,那应该从表里面找出类似"我的绯闻野狗xx","绯闻飞吻飞蚊"等等。
在网上找到一个类似的解决方案,思路大概是:将标题组成词,再like模糊查询,比如:"我的绯闻女友",先用脚本处理成"我的","的绯",“绯闻”,“闻女”,“女友”这样两个词组成的词,然后再计算该词在该标题出现的次数,设置为权重$im,最后sql语句时
select (title like "%我的%")*$im,(title like "的我").. from article where ..
,用这种词语模糊查询来查询标题相似度接近的文章,不知道这种方式靠不靠谱?
1.首先一般来说,是先检索标签、标题或者做索引,用mysql做模糊搜索。但是这些都是在数据量比较少的前提下
2.涉及到千万级别,一般是采用sphinx等搜索的解决方案来解决。
技术的关键词是全文索引,具体实例就不说了,举一个栗子:抛弃mysql模糊查询,使用sphinx做专业索引