全文搜索不显示确切的搜索结果

时间:2015-02-26 06:13:03

标签: php mysql regex search

我有工作门户网站。我正在起诉全文搜索搜索用户关键字。 我的表包含job_id,job_content列 当用户一次搜索4个关键字时,我需要显示最少3个匹配结果的单词。但我也得到了两个匹配结果的单词。我只希望job_content包含至少3个搜索单词。

这是我写的代码

$jtitle=explode(" ",$_REQUEST['job_title']);

$mch=" (MATCH(t.job_title) AGAINST('+$jtitle[0] +$jtitle[1] +$jtitle[2] +$jtitle[3]' IN BOOLEAN MODE) 
 or MATCH(t.job_title) AGAINST('+$jtitle[0] +$jtitle[1] +$jtitle[2]' IN BOOLEAN MODE) 
or MATCH(t.job_title) AGAINST('+$jtitle[1] +$jtitle[2] +$jtitle[3]' IN BOOLEAN MODE) 
or MATCH(t.job_title) AGAINST('+$jtitle[0] +$jtitle[1] +$jtitle[3]' IN BOOLEAN MODE) 
 or MATCH(t.job_title) AGAINST('+$jtitle[0] +$jtitle[2] +$jtitle[3]' IN BOOLEAN MODE)
or MATCH(t.job_content) AGAINST('+$jtitle[0] +$jtitle[1] +$jtitle[2] +$jtitle[3]' IN BOOLEAN MODE)
or MATCH(t.job_content) AGAINST('+$jtitle[0] +$jtitle[1] +$jtitle[1]' IN BOOLEAN MODE) 
or MATCH(t.job_content) AGAINST('+$jtitle[1] +$jtitle[2] +$jtitle[3]' IN BOOLEAN MODE)        
or MATCH(t.job_content) AGAINST('+$jtitle[0] +$jtitle[1] +$jtitle[3]' IN BOOLEAN MODE) 
 or MATCH(t.job_content) AGAINST('+$jtitle[0] +$jtitle[2] +$jtitle[3]' IN BOOLEAN MODE)
          or MATCH(t.job_content) AGAINST('+$jtitle[0] +$jtitle[1] +$jtitle[3]' IN BOOLEAN MODE) )";
$qry=mysql_query(" select * from jobs where 1=1 and $mch ")

我写了这样的查询,用于显示当用户搜索4个单词时在jb_content或job_title结果中匹配的至少3个关键字。 问题是我也得到2个字匹配。

请帮我解决这个问题,以获得准确的单词结果

0 个答案:

没有答案