我在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);
}
谢谢。