国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

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

2019-11-15 01:45:57
字體:
來源:轉載
供稿:網友
手把手教你做關鍵詞匹配項目(搜索引擎)---- 第十二天

第十二天

起點:

1.手把手教你做關鍵詞匹配項目(搜索引擎)---- 第一天

回顧:

11.手把手教你做關鍵詞匹配項目(搜索引擎)---- 第十一天

上回說到,關鍵詞應用需求為:

通過淘寶API取到的寶貝標題以及寶貝屬性,匹配出適合該寶貝的關鍵詞.

初期考慮以下因素:

適合人群的匹配 :男裝 (匹配出來的關鍵詞不能有女) 女裝(匹配出來的關鍵詞不能有男) 情侶裝(男女適用) 童裝(?)

淘寶API取出的寶貝屬性字段:

小帥帥想了很久,總算想出來了一個解決方案,方案如下:

<?phpclass SelectorItem {    PRivate $item;    public function __construct($item){        $this->item = $item;    }    public function __get($name){        if(isset($this->item->$name)){            return $this->item->$name;        }        return null;    }    public static function createFromApi($num_iid){        $client = new TopClient();        $client->appkey = 'xx';        $client->secretKey = 'xx';        $req = new ItemGetRequest();        $req->setFields('props_name,property_alias,detail_url,cid,title');        $req->setNumIid($num_iid);        $resp = $client->execute($req);        if(isset($resp->code)){            # error handle            throw new Exception($resp->msg, $resp->code);        }        return new self($resp->item);    }}$selectorItem = SelectorItem::createFromApi($_REQUEST["num_iid"]);Logger::trace($selectorItem->props_name);$blackCharList = array();$coreCharList = array();$matchTitle = $selectorItem->title.$selectorItem->props_name;if(preg_match('/男裝/', $matchTitle)){    $coreCharList = array(        "男裝"    );    $blackList = array(      "女"    );}else if(preg_match('/女裝/', $matchTitle)){    $coreCharList = array(        "女裝"    );    $blackList = array(        "男"    );}else if(preg_match('/情侶裝/', $matchTitle)){    $coreCharList = array(        "情侶裝",        "男裝",        "女裝"    );}else if(preg_match('/童裝/',$matchTitle)){    $coreCharList = array(        "童裝",        "兒童裝",        "女童裝",        "男童裝"    );}$where = array();foreach($coreCharList as $char){    $where[] = " Word LIKE '%$char%'";}foreach($blackCharList as $char){    $where[] = " word NOT LIKE '%$char%'";}if(count($where)>0){    $sql = "SELECT * FROM keywords WHERE ".implode(' AND ',$where);    Logger::trace($sql);    //search database}

小帥帥很高興的把代碼拿給于老大時,小帥帥被于老大批了,原因很簡單:

1. 沒有考慮未來變化因素

2. if 太多

小帥帥被批了,心里很不高興,但還是不得不去請教于老大的高招。

于老大給了一個方向給他。

1. 學習設計模式消除過多的if,以及如何去解耦。

設計模式(Design pattern)是一套被反復使用、多數(shù)人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式于己于他人于系統(tǒng)都是多贏的;設計模式使代碼編制真正工程化;設計模式是軟件工程的基石脈絡,如同大廈的結構一樣。[來自百度百科]

小帥帥只好去了解設計模式了。

附:

SelectorItem 里面的 __get 函數(shù),稱為Magic Methods如:
$selectorItem->title 其實會調用 __get('title')


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴南区| 汶上县| 疏附县| 松滋市| 如皋市| 西安市| 汉寿县| 林西县| 陆河县| 台南市| 汨罗市| 会理县| 通州市| 交城县| 繁峙县| 江津市| 黄骅市| 新疆| 徐水县| 读书| 大连市| 滕州市| 南昌市| 江门市| 揭西县| 沐川县| 新乐市| 永清县| 蒙城县| 柳江县| 兴山县| 陆川县| 临夏县| 江源县| 岗巴县| 望谟县| 台湾省| 罗源县| 蓬莱市| 布尔津县| 钟山县|