Esempio n. 1
0
 /**
  *  获得关键字的分词结果,并保存到数据库
  *
  * @access    public
  * @param     string  $keyword  关键词
  * @return    string
  */
 function GetKeywords($keyword)
 {
     global $cfg_soft_lang;
     $keyword = cn_substr($keyword, 50);
     $row = $this->dsql->GetOne("SELECT spwords FROM `#@__search_keywords` WHERE keyword='" . addslashes($keyword) . "'; ");
     if (!is_array($row)) {
         if (strlen($keyword) > 7) {
             $sp = new SplitWord($cfg_soft_lang, $cfg_soft_lang);
             $sp->SetSource($keyword, $cfg_soft_lang, $cfg_soft_lang);
             $sp->SetResultType(2);
             $sp->StartAnalysis(TRUE);
             $keywords = $sp->GetFinallyResult();
             $idx_keywords = $sp->GetFinallyIndex();
             ksort($idx_keywords);
             $keywords = $keyword . ' ';
             foreach ($idx_keywords as $key => $value) {
                 if (strlen($key) <= 3) {
                     continue;
                 }
                 $keywords .= ' ' . $key;
             }
             $keywords = preg_replace("/[ ]{1,}/", " ", $keywords);
             //var_dump($idx_keywords);exit();
             unset($sp);
         } else {
             $keywords = $keyword;
         }
         $inquery = "INSERT INTO `#@__search_keywords`(`keyword`,`spwords`,`count`,`result`,`lasttime`)\n          VALUES ('" . addslashes($keyword) . "', '" . addslashes($keywords) . "', '1', '0', '" . time() . "'); ";
         $this->dsql->ExecuteNoneQuery($inquery);
     } else {
         $this->dsql->ExecuteNoneQuery("UPDATE `#@__search_keywords` SET count=count+1,lasttime='" . time() . "' WHERE keyword='" . addslashes($keyword) . "'; ");
         $keywords = $row['spwords'];
     }
     return $keywords;
 }
Esempio n. 2
0
     $smarty->assign('brand_list', get_brand_list());
     $smarty->assign('action', 'form');
     $smarty->assign('use_storage', $_CFG['use_storage']);
     $action = 'form';
 }
 /* 初始化搜索条件 */
 $keywords = '';
 $tag_where = '';
 if (!empty($_REQUEST['keywords'])) {
     /* 代码修改_START   By    www.68ecshop.com   */
     include_once 'includes/lib_splitword_www_68ecshop_com.php';
     $Recordkw = str_replace(array("\\'"), array(''), trim($_REQUEST['keywords']));
     $cfg_soft_lang_www_68ecshop_com = 'utf-8';
     $sp_www_68ecshop_com = new SplitWord($cfg_soft_lang_www_68ecshop_com, $cfg_soft_lang_www_68ecshop_com);
     $sp_www_68ecshop_com->SetSource($Recordkw, $cfg_soft_lang_www_68ecshop_com, $cfg_soft_lang_www_68ecshop_com);
     $sp_www_68ecshop_com->SetResultType(1);
     $sp_www_68ecshop_com->StartAnalysis(TRUE);
     $word_www_68ecshop_com = $sp_www_68ecshop_com->GetFinallyResult(' ');
     //echo  $word_www_68ecshop_com;
     $word_www_68ecshop_com = preg_replace("/[ ]{1,}/", " ", trim($word_www_68ecshop_com));
     $replacef_www_68ecshop_com = explode(' ', $word_www_68ecshop_com);
     $keywords = 'AND (';
     $goods_ids = array();
     foreach ($replacef_www_68ecshop_com as $key => $val) {
         if ($key > 0 && $key < count($replacef_www_68ecshop_com) && count($replacef_www_68ecshop_com) > 1) {
             $keywords .= " AND ";
         }
         $val = mysql_like_quote(trim($val));
         $sc_dsad = $_REQUEST['sc_ds'] ? " OR goods_desc LIKE '%{$val}%'" : '';
         $keywords .= "(goods_name LIKE '%{$val}%' OR goods_sn LIKE '%{$val}%' OR keywords LIKE '%{$val}%' {$sc_dsad})";
         $sql = 'SELECT DISTINCT goods_id FROM ' . $ecs->table('tag') . " WHERE tag_words LIKE '%{$val}%' ";
Esempio n. 3
0
 }
 $tjnum = $startdd;
 if ($limitSql != '') {
     $fquery = "SELECT arc.id,arc.title,arc.keywords,addon.body FROM `#@__archives` arc\n              LEFT JOIN `#@__addonarticle` addon ON addon.aid=arc.id WHERE arc.channel='1' {$limitSql} ";
     $dsql->SetQuery($fquery);
     $dsql->Execute();
     $sp = new SplitWord($cfg_soft_lang, $cfg_soft_lang);
     while ($row = $dsql->GetObject()) {
         if ($row->keywords != '') {
             continue;
         }
         $tjnum++;
         $id = $row->id;
         $keywords = "";
         $sp->SetSource($row->title, $cfg_soft_lang, $cfg_soft_lang);
         $sp->SetResultType(2);
         $sp->StartAnalysis(TRUE);
         $titleindexs = $sp->GetFinallyIndex();
         $sp->SetSource(Html2Text($row->body), $cfg_soft_lang, $cfg_soft_lang);
         $sp->SetResultType(2);
         $sp->StartAnalysis(TRUE);
         $allindexs = $sp->GetFinallyIndex();
         if (is_array($allindexs) && is_array($titleindexs)) {
             foreach ($titleindexs as $k => $v) {
                 if (strlen($keywords) >= 30) {
                     break;
                 } else {
                     if (strlen($k) <= 2) {
                         continue;
                     }
                     $keywords .= $k . ",";