words-match
words-matchThe component is based on the dictionary tree (DFA) and is realized by using the unixsock communication and custom process. The purpose of developing this component is to help the young people quickly deploy the content detection service
Use scenario
Products related to text content have application scenarios.
such as:
Blog articles, comments detection
Detection of chat content
Blocking junk content
install
composer require easyswoole/words-match
Prepare Thesaurus
When the service is started, the data will be read out row by row. The first column of each row is sensitive words and the other columns are subsidiary information
php,Is the best language in the world
java
golang
Code example
Service registration
<?php
namespace EasySwoole\EasySwoole;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\Http\Request;
use EasySwoole\Http\Response;
use EasySwoole\WordsMatch\WordsMatchClient;
use EasySwoole\WordsMatch\WordsMatchServer;
class EasySwooleEvent implements Event
{
public static function initialize()
{
// TODO: Implement initialize() method.
date_default_timezone_set('Asia/Shanghai');
}
public static function mainServerCreate(EventRegister $register)
{
// TODO: Implement mainServerCreate() method.
$config = [
'wordBank' => '/Users/xxx/sites/easyswoole/WordsMatch/comment.txt', // Thesaurus address
'processNum' => 3, // Number of processes
'maxMem' => 1024, // Maximum memory per process(M)
'separator' => ',', // Separators for words and other information
];
WordsMatchServer::getInstance()
->setConfig($config)
->attachToServer(ServerManager::getInstance()->getSwooleServer());
}
public static function onRequest(Request $request, Response $response): bool
{
// TODO: Implement onRequest() method.
return true;
}
public static function afterRequest(Request $request, Response $response): void
{
// TODO: Implement afterAction() method.
}
}
Client use
<?php
namespace App\HttpController;
use EasySwoole\Http\AbstractInterface\Controller;
use EasySwoole\WordsMatch\WordsMatchClient;
class Index extends Controller
{
function append()
{
WordsMatchClient::getInstance()->append('easyswoole', [3,4,5]);
}
function detect()
{
$content = 'PHP is the best language in the world';
WordsMatchClient::getInstance()->detect($content);
}
function remove()
{
WordsMatchClient::getInstance()->remove('easyswoole');
}
}