2010-10-22 37 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