2012-05-22 25 views
0

下面我有它从数据库中搜索一个问题一个基本的查询时,在一个文本框,一个问题的用户类型:如何使用查询来执行语义搜索

$questionquery = "SELECT QuestionContent FROM Question 
    WHERE(QuestionContent = '".mysql_real_escape_string($questioncontent)."'); 

现在上面的查询ISN因为找到问题并不实际,所以用户必须正确输入整个问题才能找到问题。

现在我不想通过使用LIKE在数据库的问题中找到单词来进行关键字搜索。相反,我想要做的是能够使用查询来执行语义搜索,以便能够找到在文本框中输入短语的含义。

有没有人知道这是否可以在查询中执行,如果有的话是否有人知道如何实现?

感谢

+2

我认为,任何人都可以给出一个很好的答案,这将更有可能花时间创造一个谷歌的竞争对手,而不是在这里闲逛。 :-) – Gareth

+1

你看了全文搜索吗? http://jeremy.zawodny.com/blog/archives/000576.html –

回答

2

自然语言全文搜索MySQL的支持可能会提供一些帮助。但是您需要使用索引为FULLTEXT的列执行搜索,并且您的数据库引擎必须是MyISAM。

$questionquery = "SELECT * FROM Question WHERE MATCH (QuestionContent) AGAINST ('"mysql_real_escape_string($questioncontent)"')"; 

的更多信息,请上Natural Language Full-Text Searches MySQL文档:

create index `question_content_fulltext` on Question FULLTEXT (`QuestionContent`); 

你可以对柱像一条查询,然后进行自然语言搜索。