关键词匹配项目深入研究-过滤器的引入
2014-12-26 13:39
323 查看
关键词匹配项目深入研究(一) - 过滤器的引入
在开始看本篇时,请先了解 手把手教你做关键词匹配项目(搜索引擎)---- 第一天 ~ 手把手教你做关键词匹配项目(搜索引擎)---- 第二十二天
前言
接上回说到,小帅帅把完成后的代码,以及测试结果给出来后,于老大也没多说什么,就被要求上线了,原因很简单:大家都想有点贡献,福利也是少不了的,后期遇到的事情后期再来升级,那餐饭,小帅帅很happy,很满足,当然同行的有小丁丁,于老大,王总监。
问题的前因
随着项目的运行,采集关键词的应用日益广泛,突然有一天小丁丁跑来找到小帅帅,小帅帅当然很欢喜,但是听到后面的对话凉了一大截。
“小帅帅,你看,这些词怎么有&,?,%,好多乱七八糟的词都有了,这些词都不太合适用,帮帮忙看看怎么去掉咯。”小丁丁的眼神也够厉害的,盯得小帅帅直哆嗦。
“大姐,好咯,我先去瞧瞧,这件事包在我身上,到时解决了跟你说声”。
小帅帅回去查了下,发现数据库里面好多这种古怪的词,小帅帅慌了,只好又去找到于老大。
“现在词库关键词里面包含&,?,%这种词很多,而且根据匹配度算法来算的话,这些词都是可用的,我们怎么办?”。
于老大听了小帅帅的解说,想出了一个方案,我们控制下这些关键词咯,反正这些关键词业务也不使用,我们就不要让他入库了,既可以减少关键词库的量,又能保证关键词的可利用率高。
小帅帅一听,于老大就是不一样,望尘莫及。
解决方案
增加一个功能,控制词源入库,符合规则的准入,不符合规则的丢弃--过滤器的功能。
设计方案
代码方案
1. InputSource、FileSource、TaobaoHotsSource代码不变。
2. Source代码新增过滤代码,如下:
3. 新增Filter代码:
总结
良好的代码结构,新增移除功能都非常简单,工作效率提升了。小帅帅深深的爱上了这份工作。
在开始看本篇时,请先了解 手把手教你做关键词匹配项目(搜索引擎)---- 第一天 ~ 手把手教你做关键词匹配项目(搜索引擎)---- 第二十二天
前言
接上回说到,小帅帅把完成后的代码,以及测试结果给出来后,于老大也没多说什么,就被要求上线了,原因很简单:大家都想有点贡献,福利也是少不了的,后期遇到的事情后期再来升级,那餐饭,小帅帅很happy,很满足,当然同行的有小丁丁,于老大,王总监。
问题的前因
随着项目的运行,采集关键词的应用日益广泛,突然有一天小丁丁跑来找到小帅帅,小帅帅当然很欢喜,但是听到后面的对话凉了一大截。
“小帅帅,你看,这些词怎么有&,?,%,好多乱七八糟的词都有了,这些词都不太合适用,帮帮忙看看怎么去掉咯。”小丁丁的眼神也够厉害的,盯得小帅帅直哆嗦。
“大姐,好咯,我先去瞧瞧,这件事包在我身上,到时解决了跟你说声”。
小帅帅回去查了下,发现数据库里面好多这种古怪的词,小帅帅慌了,只好又去找到于老大。
“现在词库关键词里面包含&,?,%这种词很多,而且根据匹配度算法来算的话,这些词都是可用的,我们怎么办?”。
于老大听了小帅帅的解说,想出了一个方案,我们控制下这些关键词咯,反正这些关键词业务也不使用,我们就不要让他入库了,既可以减少关键词库的量,又能保证关键词的可利用率高。
小帅帅一听,于老大就是不一样,望尘莫及。
解决方案
增加一个功能,控制词源入库,符合规则的准入,不符合规则的丢弃--过滤器的功能。
设计方案
代码方案
1. InputSource、FileSource、TaobaoHotsSource代码不变。
2. Source代码新增过滤代码,如下:
class Source { public $keywords; public function run() { foreach ($this->keywords as $word) { # code... if(Filter::is($word)) continue; $keyword = new Keyword(); $keyword->word = $word; $keyword->save(); } } }
3. 新增Filter代码:
<?php #@Filename: filter/Filter.php #@Author: oShine class Filter { private static $filterWords = array("*","?","%",".","&"); public static function is($word){ $pattern = "/(".implode("|", self::$filterWords).")/"; return preg_match(pattern, $word); } }
总结
良好的代码结构,新增移除功能都非常简单,工作效率提升了。小帅帅深深的爱上了这份工作。
相关文章推荐
- 关键词匹配项目深入研究(二)- 分表思想的引入
- 关键词匹配项目深入研究(二)- 分表思想的引入
- 针对struts2配置了字符过滤器还是乱码的深入研究
- 深入研究用户提升关键词排名
- 手把手教你做关键词匹配项目(搜索引擎)---- 第二十一天
- 近期项目设计知识点总结:flex布局、canvas、引入外部字体、rem、匹配选择器等
- 深入研究互联网项目技术或者项目团队建设
- 准备用PHP做一个论坛小项目,来终止PHP的深入研究。准备转.net了
- pom中引入新依赖项后项目启动报错问题研究
- 手把手教你做关键词匹配项目(搜索引擎)---- 第二十天
- 手把手教你做关键词匹配项目(搜索引擎)---- 第九天
- 手把手教你做关键词匹配项目(搜索引擎)---- 第十三天
- 准备用PHP做一个论坛小项目,来终止PHP的深入研究。准备转.net了
- 手把手教你做关键词匹配项目(搜索引擎)---- 第十八天
- Tomcat 部署项目细节深入研究
- 手把手教你做关键词匹配项目(搜索引擎)---- 第十二天
- 手把手教你做关键词匹配项目(搜索引擎)---- 第十五天
- 要深入研究的开源项目
- 手把手教你做关键词匹配项目(搜索引擎)---- 第二十二天
- 手把手教你做关键词匹配项目(搜索引擎)---- 第十七天