AD

大数据的分词索检

起因:乱码今晚问我,近2000条数据,去25W的数据池中进行索检,严格匹配后再做下一步操作。

 

目的:要能高效快速的将近2000条数据和25W数据进行索检匹配,严格匹配。 目的是将2000条数据里面的每一条,都能找到和25W数据里面的能严格匹配的那条。效率!效率!还是TMD效率!!!

 

自己想法:(本人对数据库了解有限,菜鸟一枚,如果有大牛光临寒舍看到拙文,欢迎指教。)

 

算法名称:大数据的分词索检

 

实现思想:

首先对近2000条数据进行处理,按照一定规则,跳出几个keyword,例如ABC, EFG等,按照频率高低,进行排序,并统计每个keyword的出现数目。

要保证2000条数据中的每天数据包含的keyword ≤ 3。(此处可以优化,提示:分层关键词)(此处实现有问题)

 

其次,将关键词,根据关键词长度和频率高低,进行加权计算后,进行二次排序。(此处需要多次调整加权值)

 

第三步:将频率最高的关键词去25W的数据池中进行索检(此处参考注1),模糊查询即可。每进行一次查询,对属于数据池的数据进行标记。

结果会有两种:第一种,有匹配结果。则将2000条数据的第一条数据,和数据池中标记的数据进行包含查询。

        查询结果有两种,第一种,有匹配结果,则进行严格匹配。如果符合,进行下一步操作,然后从数据池中移除该数据;

        第二种,无匹配结果,则将排序第二的关键词进行包含匹配, 如果包含有该关键词,则进行严格匹配查询。

       以此轮询。如果不包含所有关键词,则从数据池中移除。

第二种,无匹配结果。进行2000条数据的第二条数据进行索检,参考第一种结果。

 

注1:可以采用分块的方式,将25W的数据,进行分块,对第一个分块操作完后,在执行第二个数据池分块。

 

问题:里面可能影响效率的地方,第一个是轮询进行查询,第二个是对模糊查询的25W数据的标记

最重要的,我本意是想不断缩小25W的数据池大小,结果敲下来这些文字,发现这个算法根本没缩小数据池的大小,所以,这个算法不正确或者某个环节不正确

 

 

一开始只是个灵光一闪的想法,现在写博文的时候,感觉这个想法还有很多不足和不正确的地方。明天抽空写个demo,先试试再说

评论

此博客中的热门博文

简单粗暴导出小米便签

我——终于一个人了

Ubiquiti_Networks_UniFi_Cloud_Key_authed_rce