如何使用存储过程从mysql中查找关键字。我使用的是PHP,但需要花费太多时间

时间:2014-04-08 12:23:46

标签: mysql sql stored-procedures keyword

我在mysql中有一个数据库,其中有20K记录。我想找出表格中“文字”字段中的关键字,这些关键字在任何句子中都会出现两次以上。我不想比较' text '字段的整个句子。我需要将句子的每个单词与“text”字段的所有数据进行比较。我在Php中做了这个,但是花了太多时间,所以在存储过程中需要相同的代码。

查询:

$query=mysql_query("SELECT * FROM my_tbl"); 
$text_tw=''; 
while($row=mysql_fetch_array($query))
    { $text_tw .= $row['text']." "; } 
 echo extract_keywords($text_tw); 

功能extract_keywords:

function extract_keywords($str)
  { ... 
    $healthy = array("\""); 
    $words = explode(' ', strtolower(trim(str_replace($healthy," ",$str)))); 
    $keywords = array(); 
    while(($c_word = array_shift($words)) !== null)
        {
         if (strpos($c_word,'@') === false AND strpos($c_word,'http') === false AND strlen($c_word) > 2)
         { 
           if(array_key_exists($c_word, $keywords)) 
                $keywords[$c_word][1]++; 
           else $keywords[$c_word] = array($c_word, 1); 
          } 
         } 
     ... 
     foreach($keywords as $keyword_det) 
        { 
           if($keyword_det[1] < 10) break; 
           array_push($final_keywords, $keyword_det[0]); 
         } 
     return implode(', ', $final_keywords); 
   } 

谢谢。

0 个答案:

没有答案