Php 如何使用查询执行语义搜索
下面是一个基本查询,当用户在文本框中键入问题时,它会从数据库中搜索问题:Php 如何使用查询执行语义搜索,php,sql,database,Php,Sql,Database,下面是一个基本查询,当用户在文本框中键入问题时,它会从数据库中搜索问题: $questionquery = "SELECT QuestionContent FROM Question WHERE(QuestionContent = '".mysql_real_escape_string($questioncontent)."'); 现在,上面的查询并不像查找问题那样实用,用户必须正确键入整个问题才能找到问题 现在,我不想通过使用LIKE从数据库中查找问题中的单词来进行关键字搜索。相反,我想
$questionquery = "SELECT QuestionContent FROM Question
WHERE(QuestionContent = '".mysql_real_escape_string($questioncontent)."');
现在,上面的查询并不像查找问题那样实用,用户必须正确键入整个问题才能找到问题
现在,我不想通过使用LIKE从数据库中查找问题中的单词来进行关键字搜索。相反,我想做的是能够使用查询执行语义搜索,以便能够找到文本框中输入的短语的含义
是否有人知道这是否可以在查询中执行,如果可以,是否有人知道如何实现
谢谢MySQL中的自然语言全文搜索支持可能会提供一些帮助。但是您需要将要对其执行搜索的列作为全文索引,并且您的数据库引擎必须是MyISAM
create index `question_content_fulltext` on Question FULLTEXT (`QuestionContent`);
然后可以使用如下查询对列执行自然语言搜索:
$questionquery = "SELECT * FROM Question WHERE MATCH (QuestionContent) AGAINST ('"mysql_real_escape_string($questioncontent)"')";
有关更多信息,请参阅上的MySQL文档。我认为,任何人如果能给出一个好的答案,就更有可能花时间创建一个与谷歌竞争的对手,而不是在这里闲逛。:-)你看过全文搜索吗?