使用MATCH AGAINST搜索MySQL表时出现问题

时间:2010-10-22 09:04:11

标签: search mysql match

我有一个包含事件数据的MySQL表。

在这个表上,我有一个FULLTEXT索引,分别包含了varchar,text,text类型的event_title,event_summary,event_details。

标题的例子包括:“连接数”,“急救”,“健康与安全”。

我可以按如下方式搜索表格:

SELECT * FROM events WHERE MATCH (event_title,event_summary,event_details) AGAINST ('connections');

返回名为“Connections Count”的事件没问题。

但是,无论我尝试什么,在运行以下查询时都会得到一个空结果集:

SELECT * FROM events WHERE MATCH (event_title,event_summary,event_details) AGAINST ('first aid');

SELECT * FROM events WHERE MATCH (event_title,event_summary,event_details) AGAINST ('first');

SELECT * FROM events WHERE MATCH (event_title,event_summary,event_details) AGAINST ('aid');

我尝试将一个事件重命名为“Rich Aid”,并且可以搜索到那个就好了。此外,“First Rich”也很有效。

为什么会发生这种情况或如何解决这个问题的任何想法都会很棒!

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

“first”是"stopword",默认情况下,除非您指定ft_min_word_len值,否则不会匹配4个字符以下的字词。