Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用查询执行语义搜索_Php_Sql_Database - Fatal编程技术网

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文档。

我认为,任何人如果能给出一个好的答案,就更有可能花时间创建一个与谷歌竞争的对手,而不是在这里闲逛。:-)你看过全文搜索吗?