目次
关键词匹配项目深入研究-过滤器的引入,深入研究过滤器
ホームページ php教程 php手册 关键词匹配项目深入研究-过滤器的引入,深入研究过滤器

关键词匹配项目深入研究-过滤器的引入,深入研究过滤器

Jun 13, 2016 am 09:18 AM

关键词匹配项目深入研究-过滤器的引入,深入研究过滤器

关键词匹配项目深入研究(一) - 过滤器的引入

在开始看本篇时,请先了解 手把手教你做关键词匹配项目(搜索引擎)---- 第一天 ~ 手把手教你做关键词匹配项目(搜索引擎)---- 第二十二天

前言

<p>     接上回说到,小帅帅把完成后的代码,以及测试结果给出来后,于老大也没多说什么,就被要求上线了,原因很简单:大家都想有点贡献,福利也是少不了的,后期遇到的事情后期再来升级,那餐饭,小帅帅很happy,很满足,当然同行的有小丁丁,于老大,王总监。</p>
ログイン後にコピー

问题的前因

随着项目的运行,采集关键词的应用日益广泛,突然有一天小丁丁跑来找到小帅帅,小帅帅当然很欢喜,但是听到后面的对话凉了一大截。

“小帅帅,你看,这些词怎么有&,?,%,好多乱七八糟的词都有了,这些词都不太合适用,帮帮忙看看怎么去掉咯。”小丁丁的眼神也够厉害的,盯得小帅帅直哆嗦。

“大姐,好咯,我先去瞧瞧,这件事包在我身上,到时解决了跟你说声”。

小帅帅回去查了下,发现数据库里面好多这种古怪的词,小帅帅慌了,只好又去找到于老大。

“现在词库关键词里面包含&,?,%这种词很多,而且根据匹配度算法来算的话,这些词都是可用的,我们怎么办?”。

于老大听了小帅帅的解说,想出了一个方案,我们控制下这些关键词咯,反正这些关键词业务也不使用,我们就不要让他入库了,既可以减少关键词库的量,又能保证关键词的可利用率高。

小帅帅一听,于老大就是不一样,望尘莫及。

解决方案

增加一个功能,控制词源入库,符合规则的准入,不符合规则的丢弃--过滤器的功能。

设计方案

<p><strong>   </strong> <span> 1</span> <span>class</span><span> Source {
</span><span> 2</span> 
<span> 3</span>     <span>public</span> <span>$keywords</span><span>;
</span><span> 4</span> 
<span> 5</span>     <span>public</span> <span>function</span><span> run() {
</span><span> 6</span> 
<span> 7</span>         <span>foreach</span> (<span>$this</span>->keywords <span>as</span> <span>$word</span><span>) {
</span><span> 8</span>             <span>#</span><span> code...</span>
<span> 9</span>             <span>if</span>(Filter::is(<span>$word</span>)) <span>continue</span><span>;
</span><span>10</span>             
<span>11</span>             <span>$keyword</span> = <span>new</span><span> Keyword();
</span><span>12</span>             <span>$keyword</span>->word = <span>$word</span><span>;
</span><span>13</span>             <span>$keyword</span>-><span>save();
</span><span>14</span> <span>        }
</span><span>15</span> <span>    }
</span><span>16</span> 
<span>17</span> }
ログイン後にコピー

3. 新增Filter代码:

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

       

总结

     良好的代码结构,新增移除功能都非常简单,工作效率提升了。小帅帅深深的爱上了这份工作。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)