關鍵詞匹配項目深入研究-過濾器的引入

來源:互聯網
上載者:User
關鍵詞匹配項目深入研究(一) - 過濾器的引入

在開始看本篇時,請先瞭解 手把手教你做關鍵詞匹配項目(搜尋引擎)---- 第一天 ~ 手把手教你做關鍵詞匹配項目(搜尋引擎)---- 第二十二天

前言

接上回說到,小帥帥把完成後的代碼,以及測試結果給出來後,於老大也沒多說什麼,就被要求上線了,原因很簡單:大家都想有點貢獻,福利也是少不了的,後期遇到的事情後期再來升級,那餐飯,小帥帥很happy,很滿足,當然同行的有小丁丁,於老大,王總監。

問題的前因

隨著項目的運行,採集關鍵詞的應用日益廣泛,突然有一天小丁丁跑來找到小帥帥,小帥帥當然很歡喜,但是聽到後面的對話涼了一大截。

“小帥帥,你看,這些詞怎麼有&,?,%,好多亂七八糟的詞都有了,這些詞都不太合適用,幫幫忙看看怎麼去掉咯。”小丁丁的眼神也夠厲害的,盯得小帥帥直哆嗦。

“大姐,好咯,我先去瞧瞧,這件事包在我身上,到時解決了跟你說聲”。

小帥帥回去查了下,探索資料庫裡面好多這種古怪的詞,小帥帥慌了,只好又去找到於老大。

“現在詞庫關鍵詞裡麵包含&,?,%這種詞很多,而且根據匹配度演算法來算的話,這些詞都是可用的,我們怎麼辦?”。

於老大聽了小帥帥的解說,想出了一個方案,我們控制下這些關鍵詞咯,反正這些關鍵詞業務也不使用,我們就不要讓他入庫了,既可以減少關鍵詞庫的量,又能保證關鍵詞的可利用率高。

小帥帥一聽,於老大就是不一樣,望塵莫及。

解決方案

增加一個功能,控制詞源入庫,符合規則的准入,不符合規則的丟棄--過濾器的功能。

設計方案

升級版果斷多姿多彩。

類圖:

代碼方案

1. InputSource、FileSource、TaobaoHotsSource代碼不變。

2. Source代碼新增過濾代碼,如下:

 1 class Source { 2  3     public $keywords; 4  5     public function run() { 6  7         foreach ($this->keywords as $word) { 8             # code... 9             if(Filter::is($word)) continue;10             11             $keyword = new Keyword();12             $keyword->word = $word;13             $keyword->save();14         }15     }16 17 }

3. 新增Filter代碼:

 1 php 2  3 #@Filename: filter/Filter.php 4 #@Author: oShine 5  6 class Filter { 7  8     private static $filterWords = array("*","?","%",".","&"); 9 10     public static function is($word){11         $pattern = "/(".implode("|", self::$filterWords).")/";12         return preg_match(pattern, $word);13     }14 15 }

總結

良好的代碼結構,新增移除功能都非常簡單,工作效率提升了。小帥帥深深的愛上了這份工作。

以上就介紹了關鍵詞匹配項目深入研究-過濾器的引入,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.