Mysql查询,选择与关键字列表匹配的句子

hay*_*one 2 php mysql

我已经搜索了类似的问题,这些问题得到了解答并帮助了我,但我找不到.所以,我的问题是,如何编写mysql查询来从DB中提取句子,其中包含从另一个句子生成的关键字,如下所示:

$tyrsena = "php statement for clause";  
$ques = "SELECT * FROM question WHERE title IN '$tyrsena'";  
$re = mysql_query($ques)or die(mysql_error());  
while ($da = mysql_fetch_assoc($re)){    
        $sugg = $da['title'];  
        echo $sugg;  
}
Run Code Online (Sandbox Code Playgroud)

$tyrsena我需要生成关键字的句子也是如此,我希望匹配question表中与这些关键字匹配的标题.
我提出的代码不起作用,只有当它的100%相同时才匹配它,我只是想象它想要达到的目的.感谢你们 :)

Jim*_*nis 6

首先,你需要在表上创建一个"FULLTEXT"索引并在查询中使用MATCH()函数.

StackOverflow会搜索以下两个标记,并仔细阅读与此相关的问题和答案:

  • MySQL的
  • 全文搜索

此外,您必须将源语句标记为单词列表,以便它适合插入到查询中.天真的策略是在空格上进行拆分,并且对于每个结果的术语,剥去任何拖尾标点并将其全部转换为小写.(例如,这保留了"时钟").您也可能剥离"'s"(撇号"s")和"不"的任何实例以及类似的常见收缩.(一种不太天真的方法会做适当的干预.

通常你也会过滤掉任何"停用词"(那些在英语句子中非常常见的关键字搜索中有任何价值的东西:of,a,an,the,by,for,in,...等等(你应该能够通过简单的网络搜索很容易地找到两三百个推荐英语停用词的列表).(有些列在维基百科文章的底部.