2010-10-22 124 views
0

我有一个包含事件数据的MySQL表。使用MATCH搜索MySQL表的问题AGAINST

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

标题示例包括:“连接计数”,“急救”,“健康&安全”。

我可以搜索该表如下:

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

它返回命名的事件“连接数”没问题。

但是,不管我怎么努力,我运行下面的查询时,得到一个空的结果集:

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'); 

我试图重新命名的事件为“丰富的援助”,并可以搜索那个就好了。此外,“First Rich”也很棒。

任何想法,为什么发生这种情况或如何解决这将是太棒了!

谢谢你的时间。

丰富

回答

1

“先”低于4个caracters一个"stopword",默认情况下的话,除非你指定ft_min_word_len值不匹配。

+0

啊哈!我正在寻找一个类似的保留字列表,'第一'不包括在内。 当然,有一种方法可以使用这个查询来搜索“急救”吗? – Rich 2010-10-22 09:18:47

+0

这似乎是错误^^只需编辑storage/myisam/ft_static.c来更改它。 – MatTheCat 2010-10-22 09:20:31

+0

更改“storage/myisam/ft_static.c”(不知道您是否阅读上一篇文章) – MatTheCat 2010-10-22 09:34:38