/**
  *
  * @access public
  * @return void
  * @author majiechao
  *         @修改日期 2015-09-15 16:18:11
  */
 public function wordAction()
 {
     $text = $this->request->get('text', 'string', '');
     if (empty($text)) {
         exit('[]');
     }
     $mss = mss_create("confilter_main", -1);
     $timestamp = mss_timestamp($mss);
     $is_ready = mss_is_ready($mss);
     if ($is_ready) {
         // 如果redis dict最后更新时间大于mss实例创建时间,就重载
         $updateTime = $this->di['confilter']->get($this->dictUpdateKey);
         if ($updateTime > $timestamp) {
             mss_destroy($mss);
             $mss = mss_create("confilter_main", -1);
             $timestamp = mss_timestamp($mss);
             $is_ready = mss_is_ready($mss);
         }
     } else {
         $this->loadDict($mss, $this->dictKey);
     }
     $matches = mss_search($mss, $text);
     $word_arr = array();
     foreach ($matches as $key => $value) {
         $word_arr[] = $value[0];
     }
     $json = json_encode($word_arr);
     echo $json;
     exit;
 }
Exemple #2
0
 public function reload()
 {
     $mss = mss_create("default", -1);
     $is_ready = mss_is_ready($mss);
     if ($is_ready) {
         $this->loadDict($mss, $this->dictKey);
         return 'mss has reloaded';
     } else {
         return 'mss is not ready';
     }
 }
Exemple #3
0
        $line = explode(":", $line, 2);
        if (count($line) == 2) {
            mss_add($mss, trim($line[0]), trim($line[1]));
        } else {
            mss_add($mss, trim($line[0]));
        }
    }
}
$mss = mss_create("example");
$timestamp = mss_timestamp($mss);
$is_ready = mss_is_ready($mss);
if ($is_ready) {
    $stat = stat("example.dic");
    if ($stat['mtime'] > $timestamp) {
        mss_destroy($mss);
        $mss = mss_create("example");
        $timestamp = mss_timestamp($mss);
        $is_ready = mss_is_ready($mss);
    }
}
if (!$is_ready) {
    echo "Load dict\n";
    load_dict($mss, "example.dic");
}
$text = file_get_contents("example.txt");
//
//
echo "mss_creation: " . date("Y-m-d H:i:s", $timestamp) . "\n";
//
//
echo "mms_match(): original text\n";
Exemple #4
0
<?php

// header("content-type: text/plain; charset=utf-8");
$mss = mss_create();
mss_add($mss, "安居客", "公司名称");
mss_add($mss, "二手房", "通用名词");
$text = "安居客,是安居客集团旗下国内最大的专业二手房网站。自2007年上线至今的短短4年时间里,安居客凭借其“专业二手房搜索引擎”的核心竞争力在业内独树一帜。通过对用户需求的精准把握、海量的二手房房源、精准的搜索功能、强大的产品研发能力,为用户提供最佳找房体验。目前,安居客的足迹已经遍布全国超过29个城市,注册用户超过1000万。";
echo "Round: 1\n";
$matches = mss_search($mss, $text);
echo "[\n";
foreach ($matches as $match) {
    echo "  ({$match[0]}, {$match[2]}, {$match[1]})\n";
}
echo "]\n";
echo "\n";
echo "Round: 2\n";
echo "[\n";
mss_search($mss, $text, function ($kw, $idx, $type) {
    echo "  ({$kw}, {$idx}, {$type})\n";
});
echo "]\n";
echo "\n";
$matched = mss_match($mss, $text);
echo $matched ? "matched" : "not matched", "\n";