手把手教你做關鍵詞匹配項目(搜尋引擎)---- 第十七天,教你做第十七天_PHP教程

來源:互聯網
上載者:User

手把手教你做關鍵詞匹配項目(搜尋引擎)---- 第十七天,教你做第十七天


第十七天

客串:屌絲的坑人表單神器

起點:手把手教你做關鍵詞匹配項目(搜尋引擎)---- 第一天

回顧:手把手教你做關鍵詞匹配項目(搜尋引擎)---- 第十六天

小帥帥去落實黑名單錄入的任務的時候,他給小丁丁講解了半天,小丁丁就托著下巴,看著小帥帥,做著崇拜的表情。

小帥帥感覺受打擊了,跑到於老大那兒抱怨:於老大,我給小丁丁講了半天,怎麼裝資料庫用戶端,怎麼填黑名單,為什麼要填都說明白了,小丁丁還是不懂,我真心受不了了。

於老大就安慰小帥帥說:我們先不急著落實這項任務把,我們先把初步的功能做出來,把整個架子搭好,輸入個寶貝就能匹配出關鍵詞,前期的話關鍵詞肯定很多不正確,但是不要緊,我們再來教。

小帥帥:......

於老大接著說到:只要他們看到了結果,應該很容易懂的,到時他們只有崇拜你的份啦。好了,小帥帥開心點,一次的碰壁很正常,只要在這裡面吸取到教訓就好了。

小帥帥,心裡雖然還有點不如意,不過沒有剛開始那麼氣憤了。小帥帥答到:好吧,我先繼續做功能先吧,我先去嘗試做近義詞的功能吧。

近義詞範例:

  1. XXL,加大,加大碼
  2. 外套,衣,衣服,外衣,上衣
  3. 女款,女士,女生,女性


考慮到某一個類目對於一些詞的近義詞有不同的定義,故而小帥帥把表結構設計成這樣:

CREATE TABLE `category_linklist` (   `cid` BIGINT(20) DEFAULT NULL COMMENT '類目ID',   `catmatch` VARCHAR(50) CHARACTER SET utf8 DEFAULT NULL COMMENT '類目名稱',      `word` VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '關鍵詞,用逗號分隔',     `created` DATETIME DEFAULT NULL COMMENT '錄入時間', ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bi

小帥帥並把資料補了一些進去。

INSERT INTO category_linklist(cid,catmatch,word) VALUES("50010850","女裝","XXL,加大,加大碼");INSERT INTO category_linklist(cid,catmatch,word) VALUES("50010850","女裝","外套,衣,衣服,外衣,上衣");INSERT INTO category_linklist(cid,catmatch,word) VALUES("50010850","女裝","女款,女士,女生,女性");#......

小帥帥擴充了一個CharListHandle類來專門處理這些近義詞.

代碼如下:

phpclass LinklistCharListHandle extends CharListHandle {    public function exec(){        $sql = "select word from category_linklist where cid='$this->selectorItem->cid'";        $linklist = DB::makeArray($sql);        foreach($linklist as $strWords){            $words = explode(",",$strWords);            $properties = $this->selectorItem->getProperties();            foreach($properties as $property){                $this->charlist->addCore($property->value);                if(in_array($property->value,$words)){                    foreach($words as $char){                        $this->charlist->addCore($char);                    }                }            }        }    }}

小帥帥又增加了SelectorItem擷取屬性數組的介面:

class SelectorItem {         #......    public function getProperties(){        $result = array();        $properties = explode(";",$this->item->props_name);        foreach($properties as $strProperty){            $result[] = self::createItemProperty(explode(":",$strProperty));        }       return $result;    }    public static function createItemProperty($propertyArr){        $property = new stdClass();        $property->id = $propertyArr[0];        $property->fieldId = $propertyArr[1];        $property->name = $propertyArr[2];        $property->value = $propertyArr[3];        return $property;    }   #......}

Selector的輕鬆改動如下:

class Selector {    private static $charListHandle = array(        "黑名單" => "BacklistCharListHandle",        "近義詞" => "LinklistCharListHandle"    );    #......}

當小帥帥把這代碼拿給於老大看的時候,於老大隻是瞧了一下,就把小帥帥給批了。

小帥帥百思不得其解。

預知小帥帥為啥被批,請看下回分解。




http://www.bkjia.com/PHPjc/869240.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/869240.htmlTechArticle手把手教你做關鍵詞匹配項目(搜尋引擎)---- 第十七天,教你做第十七天 第十七天 客串:屌絲的坑人表單神器 起點:手把手教你做關鍵...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.