如何获取AI的mysql查询?

时间:2012-07-09 04:43:45

标签: mysql artificial-intelligence

我有一个小问题,我尝试创建一些会响应输入文本的AI,但问题是

说我们有一个名为“AI”的数据库,其中包含“回答”和“问题”栏目

如果我尝试使用查询

询问“嘿,为什么我的手机会爆炸”
SELECT * FROM AI where question LIKE "%Hey why are my mobile explode%" LIMIT 1

我有这样的数据库记录......

Question  |   Answer
================================
Explode   | because you got suck

我的查询没有得到任何结果,但如果我更改记录并将查询更改为这样......

查询

SELECT * FROM AI where question LIKE "%explode%" LIMIT 1

数据库

Question                        |   Answer
=======================================================
Hey why are my mobile Explode   | because you got suck

我得到了回报..

所以结论是,“LIKE”操作数被读取包含条件文本的值...

VALUE是问题列的值 条件是LIKE条件OPERAND的条件

Value = ... are my mobile **explode**
Condition = **explode**

所以上面的情况是MATCH

但是,我们可能会反转函数吗?我的意思是,如何读取条件文本中包含的值......

Value = ... **explode**
Condition = "....are my mobile **explode**

先前感谢,希望有人可以帮助我..

1 个答案:

答案 0 :(得分:2)

这种简单的查询永远不会奏效。使用FULLTEXT index可以更好地使用{{3}},这样就可以使用这种自然语言'查询。如果由于某种原因无法使用全文,那么您将不得不进行大量的预处理来构建查询。对于您的第一个样本,它必须是:

SELECT ... WHERE (question LIKE '%hey%') OR (question like '%why%') OR (quetsion LIKE '%...%')

并且性能将是绝对糟糕的,因为完全狂野的条款就像不能使用索引一样。问题越多,MySQL必须进行的全表扫描越多,所需的时间就越长。

相比之下,查询的全文版本将是

SELECT ... WHERE MATCH question AGAINST ('Hey why are my mobile explode');

和...在元级别上,我希望这个问题的答案是&#34;你为什么要寻找这个而不是去医院治疗你的烧伤/弹片伤口?&#34; < / p>