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.