Heim  >  Artikel  >  Backend-Entwicklung  >  Eingehende Untersuchung von Keyword-Matching-Projekten – Einführung von Filtern

Eingehende Untersuchung von Keyword-Matching-Projekten – Einführung von Filtern

WBOY
WBOYOriginal
2016-08-08 09:32:03970Durchsuche

Eingehende Untersuchung des Keyword-Matching-Projekts (1) – Einführung von Filtern

Wenn Sie mit dem Lesen dieses Artikels beginnen, verstehen Sie bitte zunächst die Schritt-für-Schritt-Anleitung zur Durchführung eines Keyword-Matching-Projekts (Suchmaschine) ---- Tag 1 ~ Die Schritt-für-Schritt-Anleitung zur Durchführung ein Keyword-Matching-Projekt (Suchmaschine) ---- Tag 1 Zweiundzwanzig Tage

Vorwort

Nachdem Xiao Shuai Shuai den fertigen Code und die Testergebnisse herausgegeben hatte, sagte er nicht viel und wurde gebeten, online zu gehen. Der Grund ist ganz einfach: Jeder möchte einen Beitrag leisten und davon profitieren ist auch unverzichtbar. Dinge, die man in der späteren Zeit erlebt hat, werden später aufgewertet. Natürlich waren Xiao Dingding, Boss Yu und Direktor Wang dabei.

Ursache des Problems

Mit der Durchführung des Projekts wird die Anwendung der Schlüsselwortsammlung immer weiter verbreitet. Eines Tages kam Xiao Shuai Shuai plötzlich, um Xiao Shuai Shuai zu finden, aber nachdem er das Gespräch gehört hatte Daraufhin war er sehr enttäuscht.

„Xiao Shuai Shuai, schau, warum haben diese Wörter &,?,%, es gibt viele chaotische Wörter, diese Wörter sind nicht für den Gebrauch geeignet, bitte hilf mir, sie zu entfernen.“ Es war stark genug und ließ Xiao Shuai Shuai erzittern.

„Schwester, okay, ich schaue mir das erst einmal an, ich kümmere mich um die Angelegenheit und gebe dir Bescheid, wenn sie geklärt ist.“

Xiaoshuai ging noch einmal nach und stellte fest, dass die Datenbank viele solcher seltsamen Wörter enthielt. Xiaoshuai geriet in Panik und musste Boss Yu wieder finden.

„Jetzt gibt es viele Wörter wie &,?,% in den Vokabularschlüsselwörtern, und basierend auf dem Matching-Algorithmus sind diese Wörter alle verfügbar.“

Chef Yu hat sich die Erklärung von Xiao Shuaishuai angehört und einen Plan entwickelt. Da diese Schlüsselwörter im Unternehmen sowieso nicht verwendet werden, möchten wir nicht, dass sie in die Datenbank aufgenommen werden Die Menge der Schlüsselwörter kann auch eine hohe Verfügbarkeit der Schlüsselwörter gewährleisten.

Als Xiao Shuai Shuai es hörte, war er anders als der Chef und konnte ihn nicht einholen.

Lösung

Fügen Sie eine Funktion hinzu, um den Eintrag der Etymologie in die Datenbank, die Aufnahme, die den Regeln entspricht, und die Verwerfung, die den Regeln nicht entspricht, zu steuern – die Filterfunktion.

Designplan

Die aktualisierte Version ist entscheidend und farbenfroh.

Klassendiagramm:

Codeplan

1. Die Codes von InputSource, FileSource und TaobaoHotsSource bleiben unverändert.

2. Neuer Filtercode wird wie folgt zum Quellcode hinzugefügt:

<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. Neuen Filtercode hinzufügen:

<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> }

 

Zusammenfassung

Eine gute Codestruktur, das Hinzufügen und Entfernen von Funktionen ist sehr einfach und die Arbeitseffizienz wird verbessert. Xiao Shuai Shuai verliebte sich tief in diesen Beruf.

Das Obige stellt die eingehende Untersuchung des Keyword-Matching-Projekts vor – die Einführung von Filtern, einschließlich seiner Aspekte. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn